DE102020124815A1 - System und vorrichtung für benutzergesteuerte virtuelle kamera für volumetrisches video - Google Patents

System und vorrichtung für benutzergesteuerte virtuelle kamera für volumetrisches video Download PDF

Info

Publication number
DE102020124815A1
DE102020124815A1 DE102020124815.6A DE102020124815A DE102020124815A1 DE 102020124815 A1 DE102020124815 A1 DE 102020124815A1 DE 102020124815 A DE102020124815 A DE 102020124815A DE 102020124815 A1 DE102020124815 A1 DE 102020124815A1
Authority
DE
Germany
Prior art keywords
image
value
pixel
user
interest
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
DE102020124815.6A
Other languages
English (en)
Inventor
Debashish Barua
Fai Yeung
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 DE102020124815A1 publication Critical patent/DE102020124815A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • 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
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • H04N23/662Transmitting camera control signals through networks, e.g. control via the Internet by using master/slave camera arrangements for affecting the control of camera image capture, e.g. placing the camera in a desirable condition to capture a desired image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/665Control of cameras or camera modules involving internal camera communication with the image sensor, e.g. synchronising or multiplexing SSIS control signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2624Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects for obtaining an image which is composed of whole input images, e.g. splitscreen
    • 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/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/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/30168Image quality inspection
    • 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/30221Sports video; Sports image
    • G06T2207/30228Playing field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Ophthalmology & Optometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Library & Information Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Vorrichtung und Verfahren zum Bestimmen eines Qualitäts-Score für virtuelle Videokameras. Zum Beispiel umfasst eine Ausführungsformen Folgendes: einen Bereich von Interesse (ROI) -Detektor zum Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; virtuelle Kameraschaltung und/oder -logik zum Erzeugen eines zweiten Bildes, das an den ersten Koordinaten positioniert ist; Bildvergleichsschaltung und/oder -logik zum Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; einen Bildqualitätsbeurteiler zum Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.

Description

  • HINTERGRUND
  • Feld der Erfindung
  • Diese Offenbarung betrifft Videographie, Bilderfassung und Wiedergabe. Insbesondere bezieht sich diese Offenbarung auf Systeme und Verfahren für benutzergesteuerte virtuelle Kamera für volumetrisches Video.
  • Beschreibung der artverwandten Technik
  • Es sind Techniken bekannt, um Videos eines von mehreren Kameras erfassten Sportereignisses zu verwenden, und um das Video dazu zu verwenden, eine Virtual-Reality (VR) -Umgebung zu erzeugen. Diese bisherigen Lösungen sind jedoch auf eine statische Betrachtung des Ereignisses beschränkt, wobei die Perspektive innerhalb der VR-Umgebung vorausgewählt ist. Die Art und Weise, wie ein Benutzer die Sportereignisse in diesen bisherigen Lösungen steuern und betrachten kann, ist extrem beschränkt und nicht interaktiv.
  • Figurenliste
  • Ein besseres Verständnis der vorliegenden Erfindung kann von der folgenden detaillierten Beschreibung in Verbindung mit den folgenden Zeichnungen erhalten werden, in denen Folgendes gilt:
    • 1 ist eine Ausführungsform des Aufbaus von Zeitcode-Synchronisationsmechanismus 10, der sich über mehrere Panoramakameraköpfe 12, 14 und 18 und Erfassungsstationen 22, 24 und 25 hinweg erstreckt;
    • 2 ist eine Ausführungsform mehrerer Empfänger 64, 66 und 68 auf Client-Maschine 36, die zeitgestempelte Slices 78, 80, bzw. 82 von den Panorama-Videofeeds über Verteilungskanal 34 empfangen;
    • 3 ist eine Ausführungsform der Client-Anwendung auf dem Betrachtergerät;
    • 4 ist eine Ausführungsform der Schritte, die an einem Betrachtergerät beteiligt sind, um mehrere Panorama-Videostreams zu empfangen, und den Frame zu bestimmen, der dem Endbenutzer angezeigt werden soll;
    • 5 ist eine Ausführungsform der Schritte, die bei der Handhabung des durch den Benutzer ausgelösten Ereignisses mit veränderter Kamera beteiligt sind;
    • 6 ist eine Ausführungsform der Schritte, die bei der Handhabung des durch den Benutzer von Start 300 ausgelösten Ereignisses mit verändertem Videowiedergabestatus beteiligt sind;
    • 7 ist eine Ausführungsform der Schritte, die bei der Handhabung des durch den Benutzer von Start 400 ausgelösten Ereignisses mit verändertem Darstellungsfeld beteiligt sind;
    • Die 8A-B sind Ausführungsformen davon, wie die Transportsteuerungsereignisse durch die bei Start 500 initiierte Betrachtungsanwendung gehandhabt werden;
    • 9 ist eine Ausführungsform von Football-Feld 90 als der Ereignisstandort, an dem mehrere Panoramakameras 12, 14, 16 und 18 an strategischen Standorten platziert sind, sodass sie unterschiedliche Blickwinkel bereitstellen, von denen ein Sportereignis betrachtet wird, und es einem oder mehreren Endbenutzern ermöglichen, den Winkel zu wählen, der (für sie) am besten geeignet ist, um das Ereignis zu jeglichem gegebenen Zeitpunkt zu betrachten;
    • 10 ist eine Ausführungsform, die einen Zeitpunkt kurz nach dem Beginn eines Spiels in einem Football-Spiel von einem Standort hinter der Offense veranschaulicht;
    • 11 ist eine Ausführungsform des Startpunkts von hinter der Defensive Line zu Beginn des Spiels;
    • Die 12A-B sind Ausführungsformen eines Systems gemäß einer Ausführungsform der Erfindung;
    • 13 ist eine Ausführungsform eines Beispiels, das eine Ansicht eines Receivers weiter vorne im Spielfeld umfasst;
    • Die 14A-B veranschaulichen Beispiele für ergänzende Daten und Kontrollgrafiken, die in unterschiedlichen Ausführungsformen der Erfindung verwendet werden;
    • 15 ist eine Ausführungsform eines anderen Beispiels für eine perspektivische Erweiterung der Inhaltsauswahlscheibe;
    • 16 ist eine Ausführungsform, die perspektivisch volumetrische Hervorhebungen von zwei Spielern zeigt;
    • 17 ist eine Ausführungsform eines 2D-Bildschirmraum-UI, die grafische Elemente des 2D-UI umfasst;
    • 18 ist eine Ausführungsform grafischer Elemente, die die Ergebnisse einer Crowd-Sourced-Abstimmung über unterschiedliche Betrachtungsblickwinkel der Kamera zeigt;
    • 19 ist eine Ausführungsform einer Wärmeabbildungsvisualisierung, die die relative Anzahl von Benutzern zeigt, die auf bestimmte Bereiche des Bildes blicken;
    • 20 ist eine Ausführungsform eines immersiven volumetrischen Mediensystems;
    • 21 ist eine Ausführungsform eines Stabilisators, der einen Eingangs-Stream verarbeitet, um einen Stabilisierungsvektor zu erzeugen;
    • 22 ist eine modusdetaillierte Veranschaulichung einer inneren Punktwolke;
    • 23 ist eine Ausführungsform einer Vorrichtung zum Bestimmen der objektiven Videoqualität einer virtuellen Kamera;
    • 24 veranschaulicht eine beispielhafte Sequenz von PCAM- und VCAM-Bildern;
    • 25 ist eine Ausführungsform einer bestimmten Implementierung eines PCAM-Videostreams, der als eine Referenz für einen VCAM-Videostream verwendet wird;
    • Die 26A-B veranschaulichen Techniken zum Abbilden eines übergeordneten Lagrange-Elements auf ein unregelmäßiges Lagrange-Element;
    • Die 27A-B veranschaulichen unterschiedliche Beispiele von Metriken, die zum Beurteilen von VCAM-Bildern verwendet werden;
    • 28 veranschaulicht, wie die Bildqualität durch unterschiedliche Punktgrößen beeinflusst wird;
    • 29 veranschaulicht ein Beispiel einer Reihe von Voxeln einer gegebenen Punktgröße;
    • 30 ist eine Ausführungsform einer Vorrichtung zum Implementieren einer Sequenz von Operationen, um einen BCF-Score zu erzeugen;
    • 31 ist eine Ausführungsform einer Gegenüberstellung von PCAM- und VCAM-Bildern durch Verwenden der obigen Techniken; und
    • 32 ist eine Ausführungsform eines Verfahrens zum Bestimmen der Qualität einer virtuellen Kamera.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Diese Offenbarung wird zur Förderung der verfassungsmäßigen Zwecke der US-Patentgesetze eingereicht, „um den Fortschritt der Wissenschaft und der nützlichen Künste zu fördern“ (Artikel 1, Abschnitt 8).
  • Ausführungsformen der vorliegenden Erfindung offenbaren eine Vorrichtung und ein Verfahren zum Empfangen eines Videostreams von mehreren Panoramavideokameraköpfen oder von einer lokalen Speicherungsplatte, zum Speichern der Videodaten in einem lokalen Speicherpuffer und zum Betrachten von Bereichen von Interesse innerhalb jeglichen Panoramavideos durch Verwenden von Benutzerschnittstellengeräten, während die Videozeit, die Wiedergabegeschwindigkeit und die Wiedergaberichtung global über alle Panoramavideodaten hinweg auf eine synchrone Weise gesteuert werden. Gemäß einer Ausführung werden mehrere Panoramavideokameraköpfe durch einen Zeitcode-Generator synchronisiert, der die Bilderfassung über alle Kameraköpfe hinweg synchron auslöst. Gemäß einer anderen Ausführung werden mehrere Kameraköpfe durch einen „Master“-Kamerakopf synchronisiert, der Auslösesignale an all die Kameraköpfe sendet. Ferner wird gemäß noch einer anderen Ausführung jeder Kamerakopf auf „Freilauf“ mit einer vordefinierten Frame-Rate eingestellt, und die Verarbeitungscomputer erfassen alle den neuesten Frame von jeder dieser Kameras und stempeln sie mit einem Zeitcode von einem Zeitcode-Generator.
  • Verschiedene Ausführungsformen hierin werden unter Bezugnahme auf die Figuren beschrieben. Bestimmte Ausführungsformen können jedoch ohne eines oder mehrere dieser spezifischen Details oder in Kombination mit anderen bekannten Verfahren und Konfigurationen praktiziert werden. In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie zum Beispiel spezifische Konfigurationen und Verfahren, usw., um ein sorgfältiges Verständnis der vorliegenden Offenbarung bereitzustellen. In anderen Fällen wurden wohl bekannte Ausführungstechniken und -verfahren nicht besonders detailliert beschrieben, um die vorliegende Offenbarung nicht unnötig zu verschleiern. Über die gesamte Spezifikation hinweg bedeutet Bezugnahme auf „(genau) eine Ausführungsform“ oder „eine Ausführungsform“, dass ein in Verbindung mit der Ausführungsform beschriebenes bestimmtes Merkmal, eine bestimmte Konfiguration, Zusammensetzung oder Charakteristik in mindestens einer Ausführungsform enthalten ist. Somit beziehen sich die Erscheinungen der Phrase „in (genau) einer Ausführungsform“ oder „eine Ausführungsform“ an verschiedenen Stellen über die gesamte Spezifikation hinweg nicht notwendigerweise auf die gleiche Ausführungsform. Darüber hinaus können die bestimmten Merkmale, Konfigurationen, Zusammensetzungen oder Charakteristiken auf jegliche geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • Wie hierin verwendet, bedeutet der Begriff „Transportsteuerung““ eine Benutzerschnittstelle, die es einem Betrachter ermöglicht, die Videowiedergabe, wie zum Beispiel die Wahl zwischen Wiedergabe, Pause, Rücklauf und Vorlauf, sowie die Geschwindigkeit des Rücklaufs oder Vorlaufs, zu steuern.
  • 1 zeigt die Ausführung des Zeitcode-Synchronisationsmechanismus 10, der sich über mehrere Panoramakameraköpfe 12, 14 und 18 und Erfassungsstationen 22, 24 und 25 hinweg erstreckt. Zeitcode-Generator 20 wird dazu verwendet, einen einheitlichen Zeitstempel basierend auf der gewünschten Rate zu erhalten, mit der Frames 50, 52 und 54 von den Panoramakameras 12, 14 und 18 erfasst werden müssen. Derselbe Zeitcode von dem Zeitcode-Generator 20 wird durch jede der Erfassungsstationen 22, 24 und 26 empfangen, und in einer der Ausführungsformen dieses Mechanismus wird der Zeitcode dazu verwendet, die Panoramakameras 12, 14 und 18 auszulösen1 (44, 46 und 48). Dies wird auch als „Software-Auslöser“ 44, 46 und 48 der Panoramakameras 12, 14 und 18 bezeichnet. Die Panoramakameras 12, 14 und 18 erfassen einen Frame 50, 52 und 54, wenn sie durch den Auslöser 44, 46 bzw. 48 ausgelöst werden, und geben den Frame 50, 52 und 54 zu den entsprechenden Erfassungsstationen 22, 24 und 26 zurück, die den Auslöser 44, 46 und 48 erzeugt haben. Die Erfassungsstationen 22, 24 und 26 verbinden die Zeitstempelinformationen von dem Zeitcode mit den Frames und bilden „Frames mit Zeitstempeln“ 56, 58 und 60. Da der Zeitcode zwischen den Erfassungsstationen 22, 24 und 26 geteilt wird, werden die Frames 56, 58 und 60, die durch jede der Erfassungsstationen 22, 24 und 26 für einen bestimmten Zeitcode erzeugt wurden, synchronisiert, da sie denselben Zeitstempel haben. Diese Frames 56, 58 und 60 werden dann an Verarbeitungsstation 28, 30 bzw. 32 übertragen, wo sie zur Übertragung über das Netzwerk komprimiert und an einen Verteilungskanal 34 gesendet werden. Die Zeitstempelinformationen auf den Frames 56, 58 und 60 werden während dieses Verarbeitungs-, Komprimierungs- und Verteilungsprozesses aufrechterhalten. Das Verteilungsgerät oder der Verteilungskanal (Schalter) 34 ist dazu ausgelegt, die verarbeiteten Bilder oder den komprimierten Videostream an Client-Prozessoren in Clients 36, 38 und 40 zu verteilen. Die Clients 36, 38 und 40 beinhalten auch Speicher.
  • Eine andere Ausführungsform des Zeitcode-Synchronisationsmechanismus 10 von 1 bezieht das Auslösen der Panoramakameraköpfe 12, 14 und 18 durch Verwenden von „Hardware-Sync-Auslöser242 ein. Der Hardware-Auslöser 42 wird in spezifischen Zeitintervallen basierend auf der gewünschten Frame-Rate erzeugt. Diese Rate des Hardware-Auslösens muss mit der Rate des durch den Zeitcode-Generator 20 erzeugten Zeitcodes übereinstimmen. Einer der Panoramakameraköpfe 12, 14 und 18 fungiert als „Master“ und alle anderen Panoramakameraköpfe 12, 14 und 18 fungieren als „Slaves““. Die „Master“-Panoramakamera löst sich selbst und alle „Slave““-Panoramakameras synchron aus. Wenn ein Auslöser erzeugt wird, wird ein Frame 50, 52 oder 54 an der Panoramakamera erfasst. Sobald der Frame 50, 52 oder 54 erfasst ist, wird ein Ereignis an der Erfassungsstation 22, 24 oder 26 aufgerufen, und hier „greift“ die Erfassungsstation 22, 24 oder 26 den Frame von der Kamera 12, 14 oder 18 und ordnet den Zeitstempel, der dem neuesten von dem Zeitcode-Generator 20 empfangenen Zeitcode entspricht, dem Frame 50, 52 oder 54 zu.
  • Eine dritte Ausführungsform des Zeitcode-Synchronisationsmechanismus 10 von 1 beinhaltet, die Panoramakameras 12, 14 und 18 Frames in einem „Freilauf“-Modus erfassen zu lassen, wobei jede der Panoramakameras 12, 14 und 18 so schnell wie möglich auslöst. Die Erfassungsstation 22, 24 und 26 verwendet das Zeitcode-Signal, um den neuesten durch die Panoramakamera 12, 14 oder 18 erfassten Frame 50, 52 oder 54 zu „greifen“, und ordnet den dem Zeitcode entsprechenden Zeitstempel dem Frame zu.
  • 2 zeigt mehrere Empfänger 64, 66 und 68 auf einer Client-Maschine 36, die zeitgestempelte Slices 78, 80, bzw. 82 von den Panorama-Videofeeds über den Verteilungskanal 34 empfangen. Benutzerschnittstelle 70 auf der Client-Maschine 36 bestimmt, welcher Empfänger der dem Benutzer angezeigte aktive Empfänger 64, 66 oder 68 ist. Die Benutzerschnittstelle 70 verwaltet auch die Benutzerinteraktionseingabe von Geräten 62, wie Joystick 75, Tastatur 76 und berührungs- oder gestenbasierte(s) Gerät(e) 77. Die Benutzerschnittstelle 70 verwendet diese Eingabe, um zu bestimmen, welcher Client-Stream der aktive Stream sein soll (schalten zwischen Videos 74), und welcher Abschnitt des Panoramavideos dem Endbenutzer angezeigt werden soll (Zoom/Neigen/Schwenken 73). Eine andere Eingabe von den Benutzerinteraktionsgeräten ist die Eingabe bezüglich Transportsteuerung 72. Die Benutzerschnittstelle 70 verwendet diese Eingabe und gibt sie an alle Empfänger weiter. Dies ermöglicht es allen Empfängern, dieselben Transportsteuerungsvorgänge für ihre jeweiligen Panorama-Videostreams auszuführen, und stellt sicher, dass alle Panorama-Videostreams synchronisiert werden.
  • 3 zeigt eine andere Ausführungsform der Client-Anwendung auf dem Betrachtergerät. In dieser Ausführungsform dient eine einzelne Anwendung als Empfänger und Benutzerschnittstelle 84. Der Empfänger empfängt zeitgestempelte Frames für alle Panorama-Videostreams über den Verteilungskanal 34 und verwaltet jeden dieser Streams in seinem eigenen Anwendungsspeicher. Der Empfänger beinhaltet auch eine Verarbeitungsschaltung. Die in 2 beschriebene Funktionalität der Benutzerschnittstelle ist ebenfalls in diese Anwendung integriert. Wie in 2 beschrieben, verwaltet die Benutzerschnittstelle die Eingabe von Benutzerinteraktionsgeräten 86 und führt die Aktionen zum Schalten zwischen Videos 89 aus, welcher Abschnitt des Panoramavideos dem Endbenutzer angezeigt werden soll (Zoom/Schwenken/Neigen 88), und wie Transportsteuerung 87 auf alle Streams in dem Speicher angewendet werden soll.
  • Die folgenden Variablen werden mit dem Steuerungsmodul für den Empfänger und die Benutzerschnittstelle 84 gespeichert, die den Status der Ansicht bestimmen, die dem Endbenutzer angezeigt wird: a. aktuelle Kamera, die angezeigt werden soll, b. aktueller Zeitstempel des Frames, der angezeigt werden soll, c. aktueller Videowiedergabestatus--mögliche Werte sind Wiedergabe, Pause, Schneller Vorlauf, Rücklauf, Live, d. aktuelles Darstellungsfeld-- das Darstellungsfeld wird durch die aktuellen Zoom-, Schwenk- und Neigungswerte bestimmt.
  • Die Benutzerinteraktionsgeräte 86 könnten die folgenden Typen von Ereignissen erzeugen, die durch den Empfänger und die Benutzerschnittstelle 84 gehandhabt werden: a. Ereignis mit veränderter Kamera, b. Ereignis mit verändertem Status der Videowiedergabe, c. Ereignis mit verändertem Darstellungsfeld, d. Transportsteuerungsereignis.
  • 4 zeigt die Schritte, die an einem Betrachtergerät beteiligt sind, um mehrere Panorama-Videostreams zu empfangen und den Frame zu bestimmen, der dem Endbenutzer angezeigt werden soll. Die Frames von jedem Panorama-Videostream, der durch Betrachtergerät empfangen wird 102, werden in Speicher (Festplattenlaufwerk, Anwendungsspeicher oder jeglicher anderen Form von Speicherungsgerät) gepuffert 104. Jedem durch das Betrachtergerät empfangenen Frame ist ein Zeitstempel zugeordnet, der als der Schlüssel zum Synchronisieren von Frames über mehrere Panorama-Streams hinweg dient. Sobald die Frames das Puffern begonnen haben, tritt die Betrachteranwendung in eine Auffrischungszyklusschleife ein, beginnend mit „Warten auf Auffrischungszyklus“ 106. Der Auffrischungszyklus ist ein periodischer Satz von Operationen, die durch die Anwendung in jedem Auffrischungsintervall der Anzeige ausgeführt werden. Die Betrachtungsanwendung speichert die Informationen über die angezeigte Panoramakamera 108 und die Informationen über den Zeitstempel, der angezeigt werden soll, basierend auf dem Wiedergabestatus der Anwendung und Benutzereingaben in Bezug auf Transportsteuerungen. Für jeden Auffrischungszyklus prüft die Anwendung die aktuelle Panoramakamera, die angezeigt werden muss, und prüft dann den Zeitstempel, der angezeigt werden soll 110. Durch Verwenden dieser beiden Informationsteile wird der geeignete Frame, der angezeigt werden soll, von dem Puffer in dem Speicher gesucht 112. Dieser Frame wird dann in diesem Auffrischungszyklus an die Anwendung zur Anzeige weitergeleitet 114.
  • 5 zeigt die Schritte, die bei der Handhabung des durch den Benutzer ausgelösten Ereignisses mit veränderter Kamera beteiligt sind. Eine anfängliche Kamera wird nach initiieren eines Starts 200 verwendet oder als der Standard definiert 202. Dann geht die Anwendung in einen „Lausch“-Modus 204, in dem sie auf durch die Benutzerinteraktionsgeräte ausgelöste Ereignisse mit veränderter Kamera wartet 206. Wenn eine Anforderung zum Verändern der ausgewählten Kamera empfangen wird, wird die lokale Variable in der Anwendung, in der die aktuellen Kamerainformationen gespeichert sind, aktualisiert 208, und die Anwendung kehrt in den „Lausch“ -Modus zurück und wartet auf das nächste Ereignis mit veränderter Kamera.
  • 6 zeigt die Schritte, die bei der Handhabung des durch den Benutzer von Start 300 ausgelösten Ereignisses mit verändertem Videowiedergabestatus beteiligt sind. Ein anfänglicher Videowiedergabestatus 302 wird zunächst als der Standard verwendet. Dann geht die Anwendung in einen „Lausch“-Modus 304, in dem sie auf durch die Benutzerinteraktionsgeräte ausgelöste Ereignisse mit verändertem Videowiedergabestatus wartet 306. Wenn eine Anforderung zum Verändern des Videowiedergabestatus empfangen wird, wird die lokale Variable in der Anwendung, in der der aktuelle Videowiedergabestatus gespeichert ist, aktualisiert 308, und die Anwendung kehrt in den „Lausch“-Modus zurück und wartet auf das nächste Ereignis mit verändertem
    Videowiedergabestatus.
  • 7 zeigt die Schritte, die bei der Handhabung des durch den Benutzer von Start 400 ausgelösten Ereignisses mit verändertem Darstellungsfeld beteiligt sind. Das Darstellungsfeld kann durch Ändern von Zoom, Neigung oder Schwenken geändert werden. Ein anfänglicher Zoom, eine anfängliche Neigung und ein anfängliches Schwenken wird zunächst als der Standard verwendet 402. Dann geht die Anwendung in einen „Lausch“-Modus 404, in dem sie auf durch die Benutzerinteraktionsgeräte ausgelöste Ereignisse mit verändertem Darstellungsfeld wartet. Wenn eine Anforderung zum Verändern des Darstellungsfelds empfangen wird, prüft die Anwendung, ob der Wert für Zoom 410, Schwenken 406 oder Neigen 408 geändert wurde, und aktualisiert lokale Variablen 416, 412 bzw. 414 in der Anwendung, in der Zoom, Schwenken und Neigung gespeichert sind. Die Anwendung kehrt dann in den „Lausch“-Modus zurück und wartet auf das nächste Ereignis mit verändertem Darstellungsfeld.
  • Die 8a und 8b zeigen, wie die Transportsteuerungsereignisse durch die bei Start 500 initiierte Betrachtungsanwendung gehandhabt werden. Die Anwendung lauscht nach veränderten Transportsteuerungsereignissen 502. Die Anwendung prüft, um zu sehen, ob die Geschwindigkeit der Transportsteuerung verändert wurde 504. Wenn die Geschwindigkeit verändert wurde, wird der Wert der in der Anwendung gespeicherten Geschwindigkeit aktualisiert 518, und die Anwendung geht zurück zum Lauschen nach veränderten Transportsteuerungsereignissen. Wenn sich die Geschwindigkeit nicht verändert hat, dann prüft die Anwendung, ob der Benutzer „Transport zum Start“ angefordert hat 506, sodass er den Start des gepufferten Videostreams im Speicher betrachtet. Wenn „Transport zum Start“ angefordert wurde, wird der Wert des aktuell anzuzeigenden Zeitstempels geändert, sodass er derselbe wie der Zeitstempel des Frames zu Beginn des Puffers in Speicher ist 520, und die Anwendung geht zurück zum Lauschen nach veränderten Transportsteuerungsereignissen. Wenn „Transport zum Start“ nicht angefordert wurde, dann bestimmt die Anwendung den aktuellen Zeitstempel, der für die Anzeige verwendet werden soll, basierend auf dem Wiedergabestatus, in dem sich die Anwendung befindet. Wenn sich die Anwendung in dem Status „Wiedergabe““ befindet 508, dann wird der aktuelle Zeitstempel auf den nächsten Zeitstempel erhöht 522. Wenn sich die Anwendung in dem Status „Pause““ befindet 520, dann wird der aktuelle Zeitstempel nicht verändert 524. Wenn sich die Anwendung in dem Status „Schneller Vorlauf“ 512 oder „Rücklauf“ 514 befindet, dann wird der aktuelle Zeitstempel unter Berücksichtigung der Frame-Rate und der Transportgeschwindigkeit erhöht 526 oder verringert 528. Wenn sich die Anwendung in dem Status „Live““ befindet 516, dann wird der aktuelle Zeitstempel auf den Zeitstempel des Frames an dem Ende der gepufferten Frames in Speicher gesetzt 530.
  • 9 zeigt ein Football-Feld 90 als den Ereignisstandort, an dem mehrere Panoramakameras 12, 14, 16 und 18 an strategischen Standorten platziert sind, sodass sie unterschiedliche Winkel bereitstellen, von denen ein Sportereignis betrachtet wird, und es einem oder mehreren Endbenutzern ermöglichen, den Winkel zu wählen, der (für sie) am besten geeignet ist, um das Ereignis zu jeglichem gegebenen Zeitpunkt zu betrachten. Jede der Panorama-Videokameras 12, 14, 16 und 18 ist mit einer Erfassungsstation 22, 24, 25 bzw. 26 verbunden. Jede Erfassungsstation 22, 24, 25 und 26 empfängt einen Zeitcode von einem Zeitcode-Generator, und der Zeitstempel von dem Zeitcode wird mit den von der Panorama-Videokamera empfangenen Frames verbunden. Die Frames werden dann zu den Verarbeitungsstationen 28, 30, 31 und 32 übertragen, wo sie verarbeitet und zu dem Verteilungskanal 34 hinaus gestreamt werden. Der Verteilungskanal 34 empfängt die Frames und kommuniziert die Frames über ein Netzwerk an mehrere Clients, die mit dem Verteilungskanal verbunden sind.
  • Ein Panorama-Videoerfassungsgerät wie hierin verwendet, umfasst mehrere in einer kreisförmigen Anordnung platzierte Sensoren, sodass ein Abschnitt des durch jeden Sensor erfassten Bildes mit einem Abschnitt eines durch benachbarte Sensoren erfassten Bildes überlappt. Die überlappenden Bilder von den unterschiedlichen Sensoren werden basierend auf einem Auslösemechanismus synchron erfasst, und diese überlappenden Bilder bilden die Basis für die Erzeugung eines einzelnen nahtlosen Panoramabildes.
  • Wie hierin verwendet, ist ein Prozessor eine Hochleistungsmaschine mit Serverqualität, die mehrere Graphic-Processing-Units (GPU) aufnimmt. Eine GPU ist dazu geeignet, eine große Anzahl von Operationen parallel auszuführen. Die Verwendung mehrerer GPU in dem Prozessor ermöglicht hoch parallelisierte Berechnungen auf mehreren durch das Panorama-Videoerfassungsgerät kommunizierten Bild-Frames. Der Speicher kann auch resident sein.
  • Ein Prozessor umfasst die folgenden Module. Zuerst ist ein Erfassungsmodul dafür verantwortlich, das Panorama-Videoerfassungsgerät auszulösen und die Bild-Frames abzurufen, sobald die Belichtung des Frames abgeschlossen ist. In bestimmten Ausführungsformen des Erfassungsmoduls wird das Auslösen der Sensoren nicht durch dieses Modul ausgeführt. Es gibt einen separaten Auslösemechanismus für die Sensoren, und das Erfassungsmodul wird jedes Mal, wenn ein neuer Bild-Frame auf dem Panorama-Videoerfassungsgerät verfügbar ist, über das Ereignis benachrichtigt. Wenn diese Benachrichtigung durch das Erfassungsmodul empfangen wird, ruft es den Bild-Frame von dem Panorama-Videoerfassungsgerät ab.
  • Wie hierin verwendet, wirkt ein Verarbeitungsmodul so, dass es den Roh-Frame von dem Erfassungsmodul empfängt, und wendet die folgenden Filter auf den Roh-Frame an: Demosaicing-Filter: In diesem Filter wird ein Vollfarbbild durch Verwenden der unvollständigen Farbmuster von den Rohbild-Frames rekonstruiert. Coloring-Filter: Die Vollfarbbildausgabe von dem Demosaicing-Filter wird dann zur Verwendung in nachgelagerten Modulen in einen geeigneten Farbraum (zum Beispiel RGB) konvertiert. Seam-Blending-Filter: Von dem Coloring-Filter ausgegebene kolorierte Bilder werden zum Überblenden der Naht durch Verwenden von Stitch-Algorithmen auf die Überlappung zwischen benachbarten Bildern verwendet.
  • Wie hierin verwendet, ist ein Slicing-Modul dafür verantwortlich, die von dem Verarbeitungsmodul ausgegebenen Bilder zu verwenden, und sie so zusammenzusetzen, dass die Enden so aneinandergereiht sind, dass die Summe dieser einzelnen Bilder ein Panoramabild erzeugt.
  • Wie hierin ebenfalls verwendet, nimmt ein Slicing-Modul das nahtüberblendete Panoramabild, und teilt dieses Bild in mehrere Slices auf. Dies geschieht so, dass jeder Slice des Panoramabildes auf eine optimierte Weise über das Netzwerk verteilt werden kann. Dies überwindet die bestehenden Einschränkungen bestimmter Netzwerkprotokolle, die keine Panoramabilder oberhalb einer bestimmten Bildgröße kommunizieren können.
  • Wie hierin verwendet, lauscht ein Zeitstempelmodul nach dem Zeitcode von dem Zeitcode-Generator. Dieser Zeitstempel wird dann mit jedem Slice der von dem Slicing-Modul ausgegebenen Bildabschnitte verbunden.
  • Wie hierin verwendet, nimmt ein Komprimierungsmodul den durch den Zeitstempelmodul ausgegebenen Bild-Frame, und komprimiert ihn durch Verwenden bestimmter Bildkomprimierungstechniken (JPEG, H.264, usw.) zur Übertragung über das Netzwerk.
  • Wie hierin verwendet, ist ein Verteilungsgerät eine Art von Router oder Schalter, der zum Übertragen der komprimierten Frames über das Netzwerk verwendet wird. Mehrere Clients könnten sich mit dem Verteilungsgerät verbinden und die übertragenen Bild-Frames empfangen. Zusätzlich dazu könnten nachfolgende Verteilungsgeräte selbst mit einem Verteilungsgerät verbunden sein, das die Bilder zum Weiterleiten der Bilder über ein Weitverkehrsnetzwerk überträgt.
  • Wie hierin verwendet, verarbeitet ein Client-Prozess die Kombination von Unterprozessen und Modulen auf einem Betrachtergerät, um Bild-Frames von einem Verteilungsgerät zu empfangen, sie in Puffer zu speichern, die Benutzereingaben von den Benutzerinteraktionsgeräten zu verwalten, und die Videobilder dem Endbenutzer anzuzeigen.
  • Der Client-Prozess ist in die folgenden Module untergliedert:
  • Ein Empfangsmodul, das über das Verteilungsgerät eine Verbindung zu der Quelle der Videobilder herstellt, die Bilder über das Netzwerk empfängt, und sie in einem Puffer auf dem Betrachtergerät speichert.
  • Ein Benutzerschnittstellenmodul wird zum Verwalten der Benutzereingaben von den Benutzerinteraktionsgeräten verwendet. In einer der Implementierungen des Benutzerschnittstellenmoduls wird die Joystick-Steuerung zum Erfassen der Benutzereingabe verwendet. Die Benutzereingabe könnte durch Verwenden von Knöpfen an dem Joystick oder durch Verwenden der mehreren Daumenfeldsteuerungen an dem Joystick bereitgestellt werden. Unterschiedliche Knöpfe werden dazu verwendet, die Eingabe zur Änderung des Videowiedergabestatus für Wiedergabe-, Pause-, Schnellvorlauf-, Rücklauf- oder Live-Modus zu verfolgen. Eine Daumenfeldsteuerung wird dazu verwendet, die Eingaben zum Verändern des Darstellungsfelds für Zoom, Schwenken und Neigen der Ansicht zu verfolgen. Eine andere Daumenfeldsteuerung wird dazu verwendet, die Transportsteuerungseingabe zum langsamen Vor- oder Rücklauf zu verfolgen, basierend auf der Geschwindigkeit des langsamen Laufs, die dadurch bestimmt wird, wie weit die Daumenfeldsteuerung gedrückt worden ist.
  • Ein Anzeigemodul wird dazu verwendet, dem Benutzer einen Abschnitt der Panoramavideo-Frames anzuzeigen. Der Abschnitt des Video-Frames, der angezeigt werden soll, wird basierend auf den Eingaben von dem Benutzerschnittstellenmodul bestimmt. Der Bild-Frame von dem Puffer wird abgerufen, und basierend auf den anderen Benutzereingaben wird der Abschnitt des Panoramabilds bestimmt, der angezeigt werden soll. Dieser Abschnitt wird dann dem Endbenutzer zum Betrachten angezeigt.
  • In Übereinstimmung mit dem Gesetz wurden Ausführungsformen der Erfindung in einer Sprache beschrieben, die mehr oder weniger spezifisch in Bezug auf strukturelle und methodische Merkmale ist. Es versteht sich jedoch, dass die gesamte Erfindung nicht auf die gezeigten und/oder beschriebenen spezifischen Merkmale und/oder Ausführungsformen beschränkt ist, da die offenbarten Ausführungsformen Formen der Verwirklichung der Erfindung umfassen. Die Erfindung wird daher in jeglicher ihrer Formen oder Modifikationen innerhalb des angemessenen Umfangs der beigefügten Ansprüche, die gemäß der Äquivalenzlehre angemessen interpretiert werden, beansprucht.
  • SYSTEM UND VORRICHTUNG FÜR BENUTZERGESTEUERTE VIRTUELLE KAMERA FÜR VOLUMETRISCHES VIDEO
  • Die Ausführungsformen der Erfindung ermöglichen es einem Benutzer, seine Betrachtung und Erfahrung eines tatsächlichen Ereignisses in einem volumetrischen Raum interaktiv zu steuern. Das Betrachten kann auf ein VR-Head-Mounted-Gerät mit 6DOF oder auf Mobilgeräte, wie zum Beispiel iPhone- oder Samsung-Galaxy-Geräte importiert oder gestreamt werden. Mit den eingebetteten Sensoren dieser Geräte kann ein Benutzer einen Blickwinkel innerhalb des volumetrischen Raums auswählen, während das Ereignis in virtuellem Raum wiedergegeben wird. Diese Art von Benutzerinteraktivität mit Videoinhalten in einem volumetrischen Raum unterstützt ein Spektrum innovativer und neuer Verwendungen. Zum Beispiel wird dem Benutzer die Möglichkeit bereitgestellt, realistisch mit Objekten in virtuellem Raum zu interagieren, die Wiedergabe von gestreamtem Inhalt zu steuern, die beste Startansicht für den Beginn der Navigation auszuwählen, zusätzliche Spielerstatistiken zu betrachten, Ambient-Audio von virtuellen Lautsprechern zu genießen, und die Erfahrung dessen, was man bei einem Live-Sportereignis sehen und hören kann, zu individualisieren. Diese Ausführungsformen heben die Erfahrung beim Betrachten von Sportereignissen auf ein neues Niveau.
  • In einer Ausführungsform werden Original-Ereignisdaten durch Kameras und Mikrofone erfasst. Das Original-Ereignis wird in Punktwolkendaten (zum Beispiel einen Satz von Datenpunkten im 3D-Raum) konvertiert und in eine Virtual-Reality-Head-Mounted-Anzeige mit sechs Freiheitsgraden (six Degrees-Of-Freedom - 6DOF) importiert. Es ist jedoch zu beachten, dass die Ausführungsformen der Erfindung auf verschiedenen anderen Typen von Head-Mounted/mobilen Geräten implementiert werden können. Eine Ausführungsform der Erfindung ermöglicht die interaktive Bewegung des Benutzers innerhalb des volumetrischen Raums, während das Ereignis in dem virtuellen Raum um ihn herum gerendert wird. Der Benutzer kann seinen eigenen Blickwinkel entweder durch physikalische Bewegung oder durch „Springen““ über größere Entfernungen hinweg über einen Cursor auswählen, der auf dem innerhalb der virtuellen Umgebung angezeigten Spielfeld (oder in einem anderen Bereich des Sportereignisses) gerendert wird.
  • In einer Ausführungsform werden die für die volumetrische Umgebung verwendeten Punktwolkendaten von mehreren über das Ereignis hinweg verteilten Kameras (zum Beispiel 30, 35 oder mehr Kameras) erzeugt. In einer Ausführungsform werden die Punktwolkendaten zu einer Client-seitigen Anwendung gestreamt, die die Umgebung rendert. Alternativ oder zusätzlich kann das Rendern auf einem Server als Reaktion auf von dem Client empfangene Steuersignale ausgeführt werden, und der resultierende Videostream kann zu dem Client gestreamt werden. In einer Implementierung beinhaltet die Client-seitige Anwendung eine grafische Benutzerschnittstellenüberlagerung mit einer vollständigen Folge von Zeitsteuerungen. Sie kann entweder live in Echtzeit gerendert oder später auf Anforderung von aufgezeichneten Daten wiedergegeben werden.
  • Bestimmte Aspekte des oben beschriebenen Panorama-VR-Broadcast-Systems können zum Erfassen, Komprimieren und Verteilen von Audio-/Videoinhalt zum Erzeugen und Verwalten der Punktwolkendaten wie unten beschrieben verwendet werden. Die zugrunde liegenden Prinzipien der Erfindung sind jedoch nicht auf diese spezifischen Details beschränkt, und tatsächlich werden einige Aspekte der oben beschriebenen Systeme nicht in den Implementierungen unten verwendet.
  • Die in dieser Anmeldung veranschaulichten Screenshots umfassen Ergebnisse, die von einer tatsächlichen Implementierung einer Ausführungsform der Erfindung (einem Football-Spiel) erzeugt wurden. Das gezeigte Stadion wird von einem vorgerenderten 3D-Modell erzeugt, das zur Verbesserung des ästhetischen Kontexts verwendet wird.
  • 10 veranschaulicht einen Zeitpunkt kurz nach dem Beginn eines Spiels in einem Football-Spiel von einem Standort hinter der Offense.
  • Es ist zu beachten, dass in 10 Cursor 1001 nahe dem rechten Fuß des Offensive Lineman, der #60 trägt, gerendert wird. In einer Ausführungsform erscheint der Cursor 1001 als ein Ergebnis davon, dass der Benutzer die VR-Steuerungen nach unten auf das Spielfeld richtet, und zeigt einen Punkt an, an dem die Betrachtung des Benutzers bewegt werden kann, sodass der Benutzer das Ereignis von diesem Standort betrachten kann (zum Beispiel von der Perspektive des Lineman #60). Beim Klicken auf die Steuerungen wird die Kamera zu diesem Punkt bewegt, wobei sich der Benutzer im weiteren Verlauf der Ereignissequenz weiter umsehen kann. In diesem Beispiel kann der angezeigte Cursor irgendwo auf dem Football-Feld, den Seitenlinien oder den Tribünen positioniert werden.
  • 11 veranschaulicht den Startpunkt von hinter der Defensive Line an dem Beginn des Spiels. Durch Manipulieren eines Eingabegeräts oder Ausführen einer bestimmten Bewegung innerhalb der virtuellen Umgebung kann der Benutzer zwischen dem Startpunkt der Offense (10) und dem Startpunkt der Defense (11) springen.
  • Es ist zu beachten, dass 11 ein Beispiel darstellt, bei dem der Startort des Betrachtungspunkts des Benutzers so eingestellt ist, dass er zu Beginn der Sequenz die beste Betrachtungserfahrung hat. Dieser Startort gibt dem Benutzer die Möglichkeit, die meisten Aktionen zu betrachten, indem er sie an einem Standort platziert, an dem er am wahrscheinlichsten die meisten Aktionen sieht - in diesem Fall hinter der Defensive Line. Die benutzergesteuerte virtuelle Kameraerfahrung kann entweder von einem System erzeugt werden, das Punktwolkendaten (Point-Cloud-Data - PCD) für ein Live-Ereignis erfasst und erzeugt, oder von einem Speicherungsendpunkt, auf dem die Daten für On-Demand-Zugriff verfügbar sind. Für eine überzeugende immersive Erfahrung erfassen die Ausführungsformen der Erfindung immersiven Video- und Audioinhalt und stellen diesen bereit, wobei eine kombinierte visuelle und akustische 6DOF-Erfahrung ermöglicht wird.
  • Ein System gemäß einer Ausführungsform der Erfindung ist in den 12A-B veranschaulicht. Zur Übersicht ist Videoerfassungssystem 1201, das mehrere Kameras (zum Beispiel 30, 40, 60 Kameras, usw.) umfasst, die mit Videostreamer und Codierer 1210 gekoppelt sind, strategisch an unterschiedlichen Standorten an einem Ereignisveranstaltungsort (zum Beispiel einem Sportereignis) positioniert. Die Kameras des Videoerfassungssystems 1201 erfassen Bildsequenzen und übertragen diese Sequenzen an den Videostreamer und Codierer 1210, der das Video komprimiert und an Cloud-Dienst 1290 streamt. In einer Ausführungsform wird das Video mit H.264 mit eingebetteten Zeitstempeln (unten beschrieben) codiert, und wird gemäß dem RTP/RTCP-Protokoll oder einem zuverlässigen Transport über TCP übertragen.
  • Audioerfassungssystem 1202, das mehrere mit Audio-Codierer 1220 gekoppelte Mikrofone umfasst, ist ebenfalls über gesamten Ereignisveranstaltungsort 1200 verteilt, um Audio von unterschiedlichen Perspektiven zu erfassen. Die Mikrofone erfassen Rohaudio (zum Beispiel PCM-Daten), die der Audio-Codierer codiert/komprimiert und an den Cloud-Dienst 1290 streamt (zum Beispiel über Opus/RTP mit Zeitstempeln).
  • In der veranschaulichten Ausführungsform ist gemeinsames Zeitablaufsystem 1203 sowohl mit dem Videoerfassungssystem 1201 als auch mit dem Audioerfassungssystem 1202 gekoppelt, um sicherzustellen, dass die durch das Videoerfassungssystem 1201 erfassten Video-Frames und durch das Audioerfassungssystem 1202 erfasstes Audio während der Wiedergabe synchronisiert werden können. In einer Ausführungsform stempelt das Videoerfassungssystem 1201 jeden Video-Frame und/oder jedes Paket (oder jeden N-ten Frame/jedes N-te Paket) mit einem Zeitstempel, der durch das gemeinsame Zeitablaufsystem 1203 bereitgestellt wird. In ähnlicher Weise stempelt das Audioerfassungssystem 1202 jedes Audiopaket (oder jedes N-te Paket) mit dem Zeitstempel.
  • Der Videostreamer und Codierer 1210 codiert/komprimiert das Video und streamt das Video an den Cloud-Dienst 1290, der Punktwolkendatenerzeugungs- und -verwaltungssystem 1291 beinhaltet, das eine Schaltung und Logik zum Erzeugen von Punktwolkendaten (wie hierin beschrieben) umfasst. Punktwolkendatenbank 1292 speichert die Punktwolkendaten und stellt die Punktwolkendaten anfordernden Clients/Spielern 1250 unter der Kontrolle eines Benutzers bereit. Zum Beispiel kann der Benutzer einen bestimmten Standort spezifizieren, von dem das Ereignis betrachtet werden soll. Als Reaktion werden die entsprechenden Punktwolkendaten zur Betrachtung durch den Benutzer an den Client/Player 1250 gestreamt.
  • In ähnlicher Weise decodiert und speichert Audiodatenerzeugungs- und -verwaltungssystem 1296 innerhalb des Cloud-Dienstes 1290 den Audioinhalt innerhalb von Audiodatenbank 1292. In Reaktion auf eine Benutzeranforderung, einen bestimmten Abschnitt eines Ereignisses von einem bestimmten Standort auf dem Spielfeld oder den Tribünen zu betrachten, werden die entsprechenden Audiodaten an den Client/Player 1250 gestreamt, der die Video- und Audiostreams durch Verwenden der Zeitstempel synchronisiert, das Video rendert, und das Audio für den Benutzer reproduziert.
  • 12B veranschaulicht zusätzliche Details einer Ausführungsform der Erfindung, einschließlich Inhaltsverwaltungssystem 2930 zum Verwalten des Zugriffs auf die Daten in der Punktwolkendatenbank 1292 und Audiodatenbank 1243, wie unten beschrieben. Video-Decodierer 1211 decodiert den komprimierten Videostream (zum Beispiel durch Verwenden einer H./264-Decodierung) und stellt die decodierten Video-Frames Punktwolkendatenmaschine 2912 und Rekonstruktionsmaschine 1213 bereit. Eine Ausführungsform der Punktwolkendatenmaschine 2912 beinhaltet eine Bildanalyse-/Erkennungsschaltung und Software zum Identifizieren bestimmter Objekte oder Gruppen von Objekten innerhalb jedes der Video-Frames, wie zum Beispiel bestimmte Spieler, jede Mannschaft, den Ball und unterschiedliche Spielansichten. Maschinelles Lernen oder andere Bilderkennungstechniken können durch die Punktwolkendatenmaschine 2912 implementiert werden, um zu „lernen“, unterschiedliche Objekte in unterschiedlichen Typen von Ereignissen zu identifizieren.
  • Sobald die Objekte identifiziert sind, werden die Koordinaten für die Objekte der Rekonstruktionsmaschine 1213 bereitgestellt, die Punktwolkendatendateien mit Zeitstempeln (zum Beispiel .pcd-Dateien, .ply-Dateien) erzeugt. Sie speichert dann die Punktwolkendatendateien in der Punktwolkendatenbank 1292.
  • Audio-Decodierer 1221 decodiert gestreamtes Audio 1218, um die Zeitstempel (zum Beispiel durch Verwenden von AAC oder anderen Audiokomprimierungs-/Dekomprimierungstechniken) zu extrahieren, die er Audioverarbeitungsschaltung/-logik 1223 bereitstellt. Die Audioverarbeitungsschaltung/-logik 1223 speichert dann das Audio und die Zeitstempel in Audiodatenbank 1243 (zum Beispiel Streamen der Audiodaten durch Verwenden von Opus/RTP oder eines anderen Protokolls).
  • In einer Ausführungsform verwaltet das Inhaltsverwaltungssystem 2930 die Speicherung der Punktwolkendaten in der Punktwolkendatenbank 1292 und der Audiodaten in der Audiodatenbank 1243. Zum Beispiel richtet das Inhaltsverwaltungssystem 2930 HTTP/REST-Sitzungen mit der Rekonstruktionsmaschine 1213 und/oder der Punktwolkendatenbank 1292 ein, um die Speicherung der Punktwolkendaten zu verwalten/zu verfolgen. In ähnlicher Weise richtet es HTTP/REST-Sitzungen mit der Audioverarbeitungsschaltung/-logik 1223 und/oder der Audiodatenbank 1243 ein, um die Audiodaten zu verwalten/zu verfolgen.
  • In Reaktion auf eine Client-Anforderung, ein bestimmtes Ereignis an einem bestimmten Standort auf dem Spielfeld/den Tribünen zu einem bestimmten Zeitpunkt zu betrachten, wird die Anforderung an das Inhaltsverwaltungssystem 2930 umgeleitet, das dem Client 1250 Metadaten (zum Beispiel über HTTP/REST) bereitstellt. Zusätzlich zum Bereitstellen von Links zu den Punktwolkendaten in der Punktwolkendatenbank 1292 und zu den Audiodaten in der Audiodatenbank 1243 für den Client 1250 kann das Inhaltsverwaltungssystem 2930 auch relevante Metadaten in Bezug auf das Ereignis bereitstellen, wie zum Beispiel Spieler- und Mannschafts-Statistiken und den aktuellen Spielstand. Der Client 1250 fordert dann die Punktwolkendaten von der Punktwolkendatenbank 1292 und das entsprechende Audio von der Audiodatenbank 1243 an. Zusätzlich kann die GUI des Client 1250 die Metadaten interpretieren, und sie in der virtuellen Ereignisumgebung anzeigen.
  • Die folgenden zusätzlichen Details können in jeder der folgenden Systemkomponenten enthalten sein:
  • Veranstaltungsort für Live-Streaming-Ereignis 1200
  • Dies ist ein Quellort, an dem Video- und Audioerfassung über an dem Veranstaltungsstandort installierte und betriebene physikalische Kameras und Mikrofone möglich ist. Die Videokameras 1201 können strategisch über den Ereignisveranstaltungsort 1200 hinweg verteilt sein und können statisch positioniert und/oder auf dynamisch einstellbaren Geräten, wie zum Beispiel sich bewegenden Plattformen oder Videoerfassungsdrohnen, betrieben werden. In ähnlicher Weise können die Mikrofone 1202 physikalisch den Veranstaltungsort umgebend positioniert sein, um den Klang des Ereignisses von unterschiedlichen Ausrichtungen zu erfassen.
  • Gemeinsame Zeitstempelquelle 1203
  • Angenommen, dass Inhalt durch unterschiedliche Systeme für Video- und Audioquellen erfasst wird, stempelt eine gemeinsame Uhr/Zeitquelle 1203 die erfassten Video-Frames und die entsprechenden Audio-Samples mit einem Zeitstempel. Der Zeitstempel zeigt die Zeit an, an der der Inhalt erfasst wurde, und wird anschließend durch den Client 1250 dazu verwendet, den Inhalt von diesen Quellen zu synchronisieren.
  • Video- und Audio-Codierung
  • Erfasste Video- und Audiodaten in einem unkomprimierten Rohformat sind nicht für einen Datentransport mit eingeschränkter Bandbreite, zum Beispiel für die Übermittlung über ein IP-Netzwerk, geeignet. Um den Inhalt für die nächste Verarbeitungsstufe an einen entfernten Standort zu bewegen, kann das Video komprimiert und in ein geeignetes Format für den Datentransport und die Verarbeitung codiert werden. Somit komprimiert und codiert in 12 die Video-Codierungsschaltung/-logik 1210 das Rohvideo, und die Audio-Codierungsschaltung/-logik 1220 komprimiert und codiert den Roh-Audioinhalt für die Übertragung über einen Netzwerkkommunikationskanal.
  • Video-Decodierung 1211 und Audio-Decodierung 1221
  • Die transportierten und komprimierten Video- und Audiodaten werden durch die Video-Decodierungsschaltung/-logik 1211 bzw. die Audio-Decodierungsschaltung/-logik 1221 empfangen, die das Video bzw. Audio dekomprimieren. Die Decodierungsschaltungen/-logiken 1221, 1211 umfassen Endpunkte, die Paket-/Datenverlust und jegliche Anforderungen an die Zuverlässigkeit des Pakettransports handhaben. Der empfangene Inhalt wird decodiert und kann in ein geeignetes Format für die nächste Verarbeitungsstufe umgewandelt werden. Insbesondere wird das decodierte Video einer Rekonstruktionsmaschine 1213 und einer Punktwolkendatenmaschine 1212 bereitgestellt, und das decodierte Audio wird einem Audioprozessor 1223 bereitgestellt, wie unten beschrieben.
  • Rekonstruktionsmaschine 1213
  • Während der Stream-Verarbeitungsphase verarbeitet und konvertiert die Rekonstruktionsmaschine 1213 die Videostreams zu Punktwolkendaten 1241, die auf Punktwolkendatenspeicherungssystem 1242 (zum Beispiel einem Cloud-Dienst) gespeichert sind. Die Rekonstruktionsmaschine 1213 führt eine Vielzahl von Punktwolkenoperationen aus, einschließlich (aber nicht beschränkt auf) i) Bereinigen von Hintergrundbildern, ii) 2D-Lokalisierungsoperationen, iii) 3D-Lokalisierungsoperationen, iv) Segmentierung und v) Rekonstruktion.
  • Die Rekonstruktionsmaschine 1213 empfängt auch Informationen von der Punktwolkendatenmaschine 1212, die parallel läuft und Informationen bezüglich des visuellen Inhalts in dem Video bereitstellt, wie zum Beispiel, wo sich ein Ball befindet oder ein bestimmter Spieler. Die Rekonstruktionsmaschine 1213 verwendet diese Informationen dazu, zusätzliche Metadaten in den Punktwolkendaten zu erzeugen und zu speichern, die dazu verwendet werden können, den Client 1250 bei der Identifizierung relevanten oder interessanten Inhalts in der Punktwolke zu unterstützen.
  • Die Rekonstruktionsmaschine 1213 zeichnet diese Informationen auch in dem Inhaltsverwaltungssystem 1230, das den Inhalt verwaltet, auf den der Client 1250 von dem Punktwolkendatenspeicherungssystem 1242 zugreifen kann, auf oder katalogisiert sie. Insbesondere kann das Inhaltsverwaltungssystem 1230 Daten aufzeichnen, die dazu verwendet werden, interessante oder anderweitig relevante Ansichten, auf die der Benutzer zugreifen kann, zu identifizieren. Der Beginn und das Ende einer bestimmten Ansicht können durch Verwenden der in den Punktwolkendaten selbst aufgezeichneten Zeitstempel identifiziert werden. Zusätzlich verwaltet das Inhaltsverwaltungssystem 1230 dem Inhalt zugeordnete Metadaten und Zeiger auf relevante Abschnitte der Punktwolkendaten 1241 und Audiodaten 1240. Diese Metadaten und Zeiger werden dem Client 1250 auf Anforderung bereitgestellt, um es dem Benutzer zu ermöglichen, gewünschten Inhalt und eine gewünschte Ansicht auszuwählen. Nach Auswahl erzeugt der Client 1250 eine Anforderung, und der zugehörige Videoinhalt wird von den Punktwolkendaten und der Audioinhalt von den Audiodaten 1240 gestreamt.
  • Punktwolkendatenmaschine 1212
  • Eine Ausführungsform der Punktwolkendatenmaschine 1212 empfängt Videostreams, wie sie von dem Veranstaltungsort erfasst wurden, und führt Bilderkennungs-Algorithmen aus, um interessanten oder relevanten Inhalt in den Streams zu identifizieren und zu verfolgen. Sie stellt dann der Rekonstruktionsmaschine 1213 Daten bereit, die den interessanten/relevanten Inhalt identifizieren. Zum Beispiel kann die Punktwolkendatenmaschine 1212 Standortinformationen bereitstellen, die anzeigen, wo sich ein Ball oder Spieler in der aktuellen Ansicht befindet. Diese Daten ermöglichen es der Rekonstruktionsmaschine 1213, Metadaten zu den diesen Standort anzeigenden Punktwolkendaten 1241 hinzuzufügen.
  • Inhaltsverwaltungssystem 1230
  • Eine Ausführungsform des Inhaltsverwaltungssystems 1230 katalogisiert und verwaltet Punktwolkeninhalt, auf den der Client 1250 zugreifen kann, oder stellt zusätzlichen Inhalt bereit, um die Endbenutzererfahrung zu verbessern. Zum Beispiel können Spielerstatistiken oder andere externe Informationen, die nicht direkt in den Punktwolkendaten 1241 aufgezeichnet sind, nach Bedarf von dem Inhaltsverwaltungssystem 1230 abgerufen werden.
  • Punktwolkendatenspeicherungssystem 1242
  • In einem Live-System werden die decodierten Video-Frames durch die Rekonstruktionsmaschine 1213 zusammen mit den zusätzlichen Metadaten (zum Beispiel Zeitstempeln und Verfolgungsinformationen), die von der Punktwolkendatenmaschine 1212 bereitgestellt werden, in Punktwolkendaten 1241 umgewandelt. Alle diese Daten werden in dem Punktwolkendatenspeicherungssystem 1242 gespeichert. In einer Ausführungsform sind die Punktwolkendaten 1242 redundant über mehrere Server in einem Cloud-Dienst hinweg verteilt.
  • In einer Implementierung wird der Videoinhalt während eines Live-Spiels nicht aktiv in die Speicherung geschrieben, sondern von einem früher aufgezeichneten Ereignis gespeichert. Zum Beispiel können die Daten von einer externen Punktwolkendatenquelle abgerufen werden. Die zugrunde liegenden Prinzipien der Erfindung sind nicht auf die zeitliche Weise beschränkt, in der die Video-/Audiodaten verarbeitet und gespeichert werden. Die Daten müssen einfach die durch den Client 1250 erwarteten Format- und Syntaxanforderungen einhalten.
  • Das Punktwolkendatenspeicherungssystem 1242 kann auch Daten in einem komprimierten Format bereitstellen, um Daten effizienter an Clients mit eingeschränkter Bandbreite, wie zum Beispiel über drahtlose Netzwerke arbeitende mobile Endpunkte, bereitzustellen. In einer Ausführungsform speichert das Punktwolkendatenspeicherungssystem 1242 den Videoinhalt in mehreren unterschiedlichen Bitraten und streamt die für die Client-1250-Verbindung am besten geeignete Bitrate.
  • Audioprozessor 1223
  • Eine Ausführungsform des Audioprozessors 1223 verarbeitet die Audio-Streams und erzeugt basierend auf dem physikalischen Standort und der Ausrichtung der Audiomikrofone 1202 Metadaten, die diese den relevanten Audio-Samples zugeordneten Standortinformationen umfassen. Der Audioprozessor 1223 kann diese Informationen auch in dem Inhaltsverwaltungssystem 1230, von dem der Client 1250 auf sie zugreifen kann, aufzeichnen oder katalogisieren.
  • Kenntnis des physikalischen Standorts und der Ausrichtung von Mikrofonen stellt eine 6DOF-Audioerfahrung bereit, wenn Audioinhalt basierend auf dem aktuellen Betrachtungspunkt des Benutzers innerhalb der Punktwolkendaten 1241 abgespielt wird.
  • Audiodatenspeicherung 1243
  • Die Audiodatenspeicherung 1243 ist der Speicherungsendpunkt für die Audio-Samples, auf die der Client zugreift. Der Inhalt wird in dem Inhaltsverwaltungssystem 1230 katalogisiert und relevanten Abschnitten der Punktwolkendaten 1241 über die gemeinsamen Zeitstempel zugeordnet. Somit wird, wenn der Benutzer einen bestimmten Videoinhalt von einem bestimmten Betrachtungspunkt anfordert, der Videoinhalt von der Punktwolkendatenspeicherung 1242 bereitgestellt, und die zugehörigen Audiodaten 1240 werden von der Audiospeicherung 1243 bereitgestellt. Der Client 1250 verwendet dann die Zeitstempel dazu, den Audio- und Videoinhalt zu synchronisieren.
  • Client 1250
  • Eine Ausführungsform des Client 1250 rendert die Punktwolkendaten 1241 basierend auf Benutzersteuerung und Aktionen für den Benutzer. Der Client 1250 greift auf das Inhaltsverwaltungssystem 1230 zu, um interessante in den Punktwolkendaten verfügbare Ansichten/Spiele zu entdecken. Diese Ansichten können dem Benutzer zur Auswahl präsentiert werden. Nach der Auswahl greift der Client 1250 basierend auf dieser Einstiegspunkt- und/oder Startzeitinformation auf die Punktwolkendaten 1241 zu.
  • Der Inhalt, auf den zugegriffen wird, kann ein Live-Echtzeit-Stream sein, oder kann auf Anforderung von verfügbaren gespeicherten Daten angefordert und abgerufen werden. Wie erwähnt, greift der Client 1250 auch auf die Audiodaten 1240 zu, die er durch eine Referenz entweder von dem Inhaltsverwaltungssystem 1230 oder durch innerhalb der Punktwolkendaten 1241 gespeicherte Metadaten entdeckt. Während die Punktwolkendatenspeicherung 1242 und die Audiodatenspeicherung 1243 in den 12A-B separat veranschaulicht sind, kann derselbe Cloud-Speicherungsdienst verwendet werden, um sowohl die Audiodaten 1240 als auch die Punktwolkendaten 1241 zu speichern.
  • Personalisierte Benutzerdatenkomponente 1251 speichert Benutzerpräferenzen, wie zum Beispiel bevorzugte Mannschaft(en) und Lieblingsspieler. In einer Ausführungsform werden diese Informationen dazu verwendet, bestimmte Inhalte in dem Inhaltsverwaltungssystem 1230 zu identifizieren (zum Beispiel bestimmte Ausschnitte der Mannschaft(en)/ Spieler) oder können direkt verwendet werden, wenn diese Informationen von den den Punktwolkendaten 1241 zugeordneten Metadaten verfügbar sind.
  • In einer Ausführungsform verbindet sich der Client 1250 auch mit Dienst für soziales Netzwerk 1260, um es einem Benutzer zu ermöglichen, Ansichten zu posten und mit Freunden oder anderen sozialen Gruppen zu teilen.
  • Personalisierte Benutzerdaten 1251
  • Die personalisierten Benutzerdaten 1251 beinhalten Informationen bezüglich der Präferenzen eines Benutzers, wenn er auf Inhalte von den Punktwolkendaten 1241 zugreift. Wenn zum Beispiel ein Benutzer auf einen Ereigniskalender für Sportereignisse zugreift, kann er es vorziehen, auf Ansichten von der Perspektive einer bestimmten Mannschaft oder eines bestimmten Spielers zuzugreifen. In einer Ausführungsform wird auf diese Informationen durch den Client 1250 zugegriffen, der die Informationen dazu verwendet, verfügbaren Inhalt über das Inhaltsverwaltungssystem 1230 zu entdecken. Zusätzlich können die Informationen dazu verwendet werden, Inhalt direkt in den Punktwolkendaten 1241 zu identifizieren, wenn solche Metadaten darin gespeichert sind.
  • Soziales Netzwerk 1260
  • Das soziale Netzwerk 1260 kann jegliches externe Netzwerk eines Drittanbieters sein, bei dem der Benutzer ein Mitglied ist. Der Client 1250 kann auf diese Netzwerke zugreifen, um Inhalte von den Punktwolkendaten oder verwandte Informationen zu teilen und zu posten.
  • Benutzerangepasste virtuelle Kamera
  • In einer Ausführungsform wird ein navigierbares Menü bereitgestellt, das es dem Benutzer ermöglicht, von vorgewählten virtuellen Kameras, die an den interessantesten Blickwinkeln positioniert sind, auszuwählen. Jede virtuelle Kamera umfasst einen einzigartigen Winkel und kann an einen einzelnen Benutzer angepasst werden. Von dieser Startansicht kann der Benutzer zu jeder Zeit auf die Steuerungen zugreifen, um sie nach Belieben neu zu positionieren. Die Anfangsposition kann basierend auf den Präferenzen des Benutzers konfiguriert werden, entweder explizit in eine zum Betrachten der Sequenzen verwendete Client-Anwendung eingegeben, oder basierend auf seinem früheren Verhalten beim Beobachten anderen Inhalts. Wenn der Benutzer zum Beispiel explizit eine Lieblingsmannschaft deklariert hat oder in der Vergangenheit eine bestimmte Mannschaft häufiger beobachtet hat, kann der Client 1250 die anfängliche Betrachtungsposition des Benutzers von der Seite des Spielfeldes dieses Teams positionieren.
  • In einer Ausführungsform kann eine Gruppe von Benutzern derselben Szene zur gleichen Zeit in einer sozialisierten Einstellung zugeordnet sein, wobei jeder Benutzer dazu in der Lage ist, einen in der Szene angezeigten „Avatar“ eines anderen Benutzers zu sehen, sodass er weiß, was jeder Benutzer gerade ansieht. Jeder Benutzer hat volle Kontrolle über seine Position, von der er die laufende Aktion beobachtet, und kann sie zu jeder Zeit ändern. Die Grenzen des Bereichs, von dem Benutzer auswählen können, können von den Präsentatoren vor dem Betrachten durch Benutzer konfiguriert werden; in diesem Beispiel wurden sie so konfiguriert, dass sie der gesamte Bereich des Football-Felds sind, sie könnten jedoch auch so eingestellt werden, dass sie Luftaufnahmen über den Köpfen der Spieler, Zuschaueransichten von den Sitzplätzen in dem Stadion, von innerhalb einer Luxuskabine über dem Spielfeld, oder von jeglicher anderen durch die Präsentatoren gewünschten Position beinhalten. Zum Beispiel kann sich ein Benutzer weiter vorne auf dem Spielfeld positionieren wollen, um den Receiver zu beobachten, während er dabei ist, den Ball zu empfangen.
  • 13 veranschaulicht ein Beispiel, das eine Ansicht eines Receivers weiter vorne im Spielfeld umfasst. Während dieses Beispiel ein einzelnes Spiel von Football aufgreift, gibt es keinen strukturellen Grund, warum es auf diese Ausrichtung beschränkt sein muss.
  • Zeltsteuerung der volumetrischen Videosequenz
  • In einer Ausführungsform wird dem Benutzer die Kontrolle über die Wiedergabe der Sequenz bereitgestellt. Wie in 14A gezeigt, kann der Benutzer zu jeder Zeit eine Eingabe über ein Eingabegerät oder eine Bewegung bereitstellen, um Benutzerschnittstelle 1401 dazu veranlassen, gerendert zu werden. Die Benutzerschnittstelle dieser Ausführungsform beinhaltet grafische Videosteuerungen 1401, die den Videoinhalt überlagern. Der Benutzer kann auf diese Steuerungen zugreifen, um bei der Wiedergabe der Sequenz zu pausieren, nach dem Pausieren fortzufahren, vorwärts oder rückwärts zu springen.
  • Diese Steuerungen ermöglichen es dem Benutzer, die Aktion zu einem bestimmten Zeitpunkt zu stoppen und sich weiterhin herumzubewegen, um die Szene aus unterschiedlichen Ansichten innerhalb des Felds von Interesse erneut zu untersuchen. Steuerungen für Audio, das in die Szene hinein bearbeitet werden kann, vorgeschlagene Kamerawinkel oder jegliche anderen zusätzlichen Elemente der Gesamterfahrung können darin enthalten sein. Es gibt keine logische oder strukturelle Begrenzung für die möglichen Blickwinkel; die gegebenen Screenshots stellen Blickwinkel dar, als ob der Benutzer auf dem Spielfeld stehen würde, aber es können Ansichten von oben, von den Tribünen, von einer virtuellen „Luxuskabine“ oder von irgendwo anders innerhalb der Sichtlinie präsentiert werden.
  • Markieren des Objekts von Interesse
  • Zusätzlich können, wie in 14B veranschaulicht, „Markierungen““ 1401A-C zu der Szene hinzugefügt werden, um das Auge des Benutzers auf Personen oder Objekte von Interesse zu lenken. Zum Beispiel könnte der Quarterback seinen Namen und seine Trikotnummer in einem Text zeichnen lassen, der seiner Position auf dem Spielfeld folgt. Der Receiver, der den Pass fängt, der Defender, der ihm über das Spielfeld folgt, und jegliche anderen für die Sequenz der Ereignisse maßgeblichen Spieler können ebenfalls mit Metadaten markiert werden. Die Metadaten können durch das Inhaltsverwaltungssystem wie oben beschrieben gespeichert und verwaltet werden.
  • Durch Anzeigen dieser und/oder Zugreifen auf diese Markierungen 1401A-C wird dem Benutzer die Möglichkeit bereitgestellt, mehr über die Mannschaft, die Spieler und/oder das Ereignis zu erfahren. Ein virtueller „Telestrator“ kann ebenfalls zu der Szene hinzugefügt werden, um eine Erklärung dafür bereitzustellen, wie sich ein Ereignis so entwickelt hat wie geschehen, und wo Personen darin gute oder schlechte Entscheidungen getroffen haben, die zu dem Endergebnis beigetragen haben. Diese Daten können für jeden Benutzer personalisiert werden (zum Beispiel gespeichert als personalisierte Benutzerdaten), sodass unterschiedlichen Benutzern unterschiedliche Formen von Metadaten und Grafiken bereitgestellt werden.
  • Marker für die beste Ansicht
  • In einer Ausführungsform werden zwei Typen von Kameras als Voreinstellungen für die Betrachtung durch den Benutzer bereitgestellt:
    1. 1. PCAM (physikalische Kamera): Kameras, die physikalisch an dem Veranstaltungsort positioniert sind. Diese können an dem Veranstaltungsort statisch und/oder dynamisch bewegbar sein. Zum Beispiel können statische Kameras an Standorten rund um den Veranstaltungsort vorkonfiguriert sein, während ein anderer Satz von Kameras mit Kamerapositionierungsgeräten verbunden oder durch Kameramänner gehalten und während des Ereignisses auf dem Spielfeld umherbewegt werden kann (zum Beispiel gekoppelt mit einstellbaren Drahtsystemen über dem Spielfeld oder an den Seitenlinien).
    2. 2. VCAM (virtuelle Kamera): Virtuelle Kameras sind solche, die durch den Hersteller vordefiniert werden (zum Beispiel durch Verwenden eines Produktionswerkzeugs), der sie irgendwo innerhalb des Ereignisveranstaltungsorts im 3D-Raum positioniert. Dies können auch statische Kameras sein (die im 3D-Raum an derselben Stelle bleiben) oder sie können Kameras folgen, die dem Ball oder einem bestimmten Spieler im 3D-Raum durch Verwenden der durch die Punktwolkenmaschine 2912 aufgenommenen Verfolgungsdaten folgen.
  • Da nicht alle PCAM und VCAM die gleiche interessante Ansicht von Aktionen und Ereignissen liefern, die auf dem Spielfeld geschehen, beinhaltet eine Ausführungsform der Erfindung eine Ansichtsranglistenmaschine (zum Beispiel innerhalb der Punktwolkendatenmaschine 1212), die eine Rangliste für alle Ansichten basierend auf den besten Betrachtungswinkeln für Aktionen während des Spiels und/oder andere interessante Ereignisse auf dem Spielfeld erstellt. Ein Satz der Standorte mit dem höchsten Rang kann mit grafischen Markern identifiziert werden, sodass ein Benutzer eine Ansicht auswählen kann, um die Navigation zu starten. Ein Benutzer kann die Ansicht jedes Markerstandorts vorab betrachten, indem er durch alle verfügbaren Ansichten geht und dann die Wahl trifft, eine Ansicht zu fixieren.
  • Eine Ausführungsform der Ansichtsranglistenmaschine beginnt mit der Spieler- und Ballerkennung durch Verwenden einer Computer-Vision-Technology (CVT) -Maschine, um Objekte in ihren Begrenzungsrahmen herauszusegmentieren. Basierend auf einem Deep-Learning-Trainingsmodell für Spieler und Ball gibt eine Ausführungsform der Ansichtsranglistenmaschine eine Schlussfolgerung auf die beste Ansicht für Benutzer.
  • Physik-Maschine für Objekte In volumetrischen Daten
  • In einer Ausführungsform wird die Objektsegmentierung für ein Objekt von Interesse in den durch die Punktwolkendatenmaschine 1212 verarbeiteten und erzeugten volumetrischen Daten dazu verwendet, den Begrenzungsrahmen für das Objekt selbst zu erzeugen. Der Begrenzungsrahmen eines Objekts wird dazu verwendet, realistisch eine Anwesenheit des Objekts selbst in dem Feld des Ereignisveranstaltungsortes zu geben. In einer Ausführungsform hat jede VCAM auch einen Begrenzungsrahmen, um ihre Anwesenheit in dem Feld so zu markieren, dass die Ansicht der VCAM von dem Begrenzungsrahmen des Objekts abprallt, wenn es gegen das Objekt stößt. Dies löst ein Problem, das sich ergeben kann, wenn die Ansicht einer VCAM durch ein Objekt verläuft. Darüber hinaus wird das Zurückprallen mithilfe einer Physikmodellierungsmaschine animiert, um eine realistischere Benutzererfahrung zu erzielen.
  • Der Begrenzungsrahmen kann sowohl für erweiterte als auch für reale Objekte auf dem Spielfeld bereitgestellt werden, und um das Stadion herum können unsichtbare Barrieren hinzugefügt werden, um einzuschränken, wo sich eine virtuelle Kamera bewegen kann, ähnlich wie dies eine Person in der realen Welt tun kann.
  • Volumetrische Erweiterung
  • Die volumetrische Erweiterung ist das Einfügen visueller Elemente in Punktwolkendaten zur Anzeige auf HMD (Head-Mounted-Display)- oder mobilen Geräten. Die Erweiterung des Inhalts ermöglicht das Einfügen verschiedener visueller Elemente (wofür Beispiele hierin beschrieben werden), die ein tieferes Geschichtenerzählen ermöglichen, was die volumetrische Betrachtungserfahrung verbessert. Diese Erweiterungen können entweder „In-Perspektive““ 3D-Elemente oder 2D-„Bildschirmraum“ - UI-Elemente sein. Die volumetrische Erweiterung kann auch 3D-Datenvisualisierungen externer Daten-Feeds beinhalten, die in die Punktwolke eingefügt werden. Beispiele für diese volumetrischen Erweiterungen beinhalten (1) Kennungsgrafiken (In-Perspektive) und (2) Kennungsgrafiken (2D-Bildschirmraum-UI).
  • Kennungsgrafiken (In-Perspektive)
  • Kennungsgrafiken sind die In-Perspektive-Zeiger und andere visuelle Elemente, die relevante Kontextinformationen über ein Objekt in der 3D-Szene liefern. Beispiele für diese Kennungsgrafiken beinhalten:
    1. a) Zeiger oberhalb von Objekten,
    2. b) Inhaltsauswahlscheiben unter Objekten,
    3. c) Objektspuren,
    4. d) Volumetrische Hervorhebungen,
    5. e) Grafische 3D-Einfügungen für Sponsoring, und
    6. f) 3D-Telestration.
  • Die In-Perspective-Erweiterung kann sowohl stationär sein, als auch ein Objekt über die Zeit innerhalb der Szene verfolgen. Zum Beispiel können Fan-Erkenntnisse in taktisch interessante Situationen hinein bereitgestellt werden. In dieser Ausführungsform können mehrere Benutzer das Spiel in dem volumetrischen Raum beobachten, den Spielfluss analysieren, und die wichtige Situation des Spiels durch Verwenden der 3D-Telestrationswerkzeuge diskutieren. Dies kann es dem Benutzer ermöglichen, 3D-Effekte und Grafiken auf das Live-Video zu zeichnen.
  • Die in 14B gezeigten Spielerinfomarkierungen 1401A-C sind ein Beispiel für In-Perspektive-Objektkennungsgrafiken. Ein anderes Beispiel für In-Perspektive-Erweiterung ist in 15 veranschaulichte Inhaltsauswahlscheibe 1501. Noch ein anderes Beispiel ist in 16 gezeigt, die volumetrische In-Perspektive Hervorhebungen 1601A-B von zwei Spielern zeigt.
  • Kennungsgrafiken (2D-Bildschirmraum-UI)
  • Kennungsgrafiken sind die auf dem Bildschirm eines Geräts angezeigten visuellen 2D-Benutzerschnittstellenelemente, die relevante Kontextinformationen über ein Objekt (zum Beispiel einen Spieler, eine Mannschaft, usw.) bereitstellen. Beispiele für diese Kennungen beinhalten HUD (Heads-up-Displays) von Inhalt, der von der volumetrischen Punktwolke abgeleitet wurde, wie zum Beispiel Position, Geschwindigkeit oder Standort. 17 veranschaulicht eine beispielhafte 2D-Bildschirmraum-UI, die grafische 2D-UI-Elemente 1701A-C umfasst, die oben auf den Bildern auf dem Bildschirm des Geräts gerendert wurden.
  • Volumetrische räumliche Punkte von Interesse
  • In einer Ausführungsform erzeugte volumetrische räumliche Punkte von Interesse umfassen mehrere 3D-Audiopunkte von Interesse innerhalb der volumetrischen Punktwolke zur Wiedergabe auf einem HMD oder einem mobilen Gerät. Diese verschiedenen Punkte von Interesse ermöglichen es dem Benutzer, kontextbezogenes Audio von unterschiedlichen Betrachtungspunkten zu erfahren, was ein tieferes Eintauchen in den Inhalt ermöglicht. Diese Bereiche von Interesse werden in einer Ausführungsform als innerhalb der Punktwolke erfasste volumetrische 3D-Audiosphären dargestellt.
  • Ein Beispiel für einen volumetrischen räumlichen Punkt von Interesse beinhaltet kontextspezifisches Audio. Zum Beispiel wird einem Benutzer in einem Football-Spiel die Möglichkeit bereitgestellt, zwischen dem Audio eines Quarterback und dem eines Wide Receiver in einer Punktwolke umzuschalten, und eindeutiges Audio von dem Betrachtungspunkt des Quarterback bzw. des Wide Receiver zu hören. Wenn ein Benutzer einen unterschiedlichen Punkt von Interesse auswählt, werden die Audioübergänge synchron mit dem 3D-Punktwolken-Rendern ausgeführt.
  • Kollaboratlve Crowd-Sourclng-Steuerung
  • Kollaborative Crowd-Sourcing-Steuerung ist die Möglichkeit, Blickwinkel von innerhalb einer volumetrischen Erfahrung von Einzelpersonen oder von einer Gruppe mit einem gemeinsam geteilten Interesse für HMD und mobile Geräte zu beziehen. Diese bevorzugten volumetrischen Blickwinkel können von der Datenanalyse des Benutzers gesammelt oder durch den Benutzer selbst gegeben werden, und stellen Benutzern die Möglichkeit bereit, ihre eigene volumetrische Erfahrung eines tatsächlichen Ereignisses der realen Welt zu kuratieren. Da ein Stück eines volumetrischen Inhalts von viel mehr Winkeln als von einer stationären Standardkamera betrachtet werden kann, nimmt das System die relevantesten Daten, um den Benutzern ihren besten bevorzugten Blickwinkel bereitzustellen. Einer Einzelperson wird auch die Möglichkeit bereitgestellt, ihre personalisierte volumetrische Erfahrung eines Ereignisses mit anderen Benutzern zu teilen oder die geteilten Blickwinkel anderer zu erfahren. Um diese Crowd-Sourced-Blickwinkel für volumetrischen Inhalt zu identifizieren, kann eine oder eine Kombination der folgenden Techniken verwendet werden:
    1. A. Abstimmen über die besten volumetrischen Betrachtungswinkel
    2. B. Personalisierte volumetrische Betrachtungsblickwinkel
    3. C. Erweitern von Benutzer-Sourced Datenanalyse in eine volumetrischen Erfahrung
    4. D. Teilen der eigenen und Anzeigen der volumetrischen Erfahrungen von Einzelpersonen
    5. E. Teilen der Reaktionen innerhalb des volumetrischen Raums
  • Diese Möglichkeiten stellen Einzelpersonen die Werkzeuge dafür bereit, eine personalisierte Geschichtenerzähl-Erfahrung eines tatsächlichen Ereignisses der „realen Welt“ zu haben. Das Geschichtenerzählen der Erfahrung bleibt dem Benutzer überlassen, zu entscheiden, wann er eine aktive oder passive Rolle in seiner Erfahrung übernehmen möchte. Durch Strukturierung eines Systems, das so viele oder so wenige Empfehlungen von Blickwinkeln enthält, um ein Ereignis der „realen Welt“ von einer unterschiedlichen Perspektive zu erfahren. Die Möglichkeit, ein tatsächliches 6DoF-Ereignis zu übertragen, ob es live oder nach der Bearbeitung ist, stellt Benutzern viele Optionen für Blickwinkel bereit, von denen sie den volumetrischen Inhalt erfahren können.
  • Abstimmen über die besten volumetrischen Betrachtungswinkel
  • Benutzergruppen können sich kollektiv zusammenkommen, um über den besten volumetrischen Blickwinkel zu entscheiden. Diese Blickwinkel können auch Untergemeinschaften der größeren Gemeinschaft sein, um einen bevorzugteren volumetrischen Betrachtungsblickwinkel anzupassen, der stärker an den Präferenzen der Untergemeinschaft ausgerichtet ist.
  • Diese Funktionalität kann auch erweitert werden, um es Untergemeinschaften zu ermöglichen, andere Untergemeinschaften gemeinsam darin herauszufordern, wo der beste Betrachtungsblickwinkel für volumetrischen Inhalt platziert ist.
  • 18 veranschaulicht grafische Elemente 1801A-B, die die Ergebnisse einer Crowd-Sourced-Abstimmung über unterschiedliche Betrachtungsblickwinkel der Kamera zeigt. Das grafische Element 1801A zeigt an, dass 10 Benutzer für die Perspektive des Quarterback gestimmt haben, während 1801B anzeigt, dass 23 Benutzer für die Perspektive des Defensive Tackle gestimmt haben.
  • Personalisierte volumetrische Betrachtungsblickwinkel
  • Ein angepasster personalisierter volumetrischer Betrachtungsblickwinkel kann auch von den Vorerfahrungen, von während der Erfahrung und von den Präferenzen der vergangenen Erfahrungen des Benutzers abgeleitet werden. Vorerfahrungs-Blickwinkel können von Benutzerpräferenzdaten bezogen werden, die für einen einzelnen Benutzer relevant sind. Diese Blickwinkel werden entweder durch eine Kombination von freiwillig abgefragten Präferenzen, oder durch allgemein über den einzelnen Benutzer verfügbare Informationen identifiziert.
  • Ein Blickwinkel während der Erfahrung berücksichtigt, wo und wie eine Einzelperson aktuell mit einem Stück volumetrischen Inhalts der „realen Welt“ interagiert. Diese relevanten Informationsstücke, zum Beispiel wo sich der Benutzer befindet, worauf der Benutzer blickt, und wie der Benutzer den Inhalt konsumiert, werden bei der Bestimmung eines Blickwinkels für den Benutzer berücksichtigt.
  • Beispiel 1: Wo sich der Benutzer befindet.
  • Wenn ein Benutzer Präferenz für eine Erfahrung von Typ A hat, sich aber aktuell an einer Stelle befindet, die besser zu denen passt, die Präferenz für Typ B haben.
  • Der Benutzer wird entweder durch einen visuellen oder einen akustischen Hinweis angezeigt, um eine Rückmeldung zu empfangen, dass ein mehr bevorzugter Blickwinkel verfügbar ist, der stärker an seinen Präferenzen ausgerichtet ist.
  • Beispiel 2: Was befindet sich in dem Sichtfeld (Field-of-View - FOV) eines Benutzers
  • Durch Verfolgen, was sich in einem aktuellen FOV eines Benutzers befindet, kann das System bestimmen, ob ein Benutzer einen Blickwinkel betrachtet, der an seinen Inhaltspräferenzen ausgerichtet ist oder nicht.
  • Das System ist dazu in der Lage, dem Benutzer anzuzeigen, ob sein aktuelles FOV sein bevorzugtes ist, oder ob ein mehr bevorzugter Blickwinkel verfügbar ist.
  • Beispiel 3: Wie der Benutzer volumetrischen Inhalt konsumiert
  • In der Lage zu sein, zu wissen, ob ein Benutzer sitzt oder steht, gibt Größeninformationen über diesen Benutzer. Der Typ des Mediums, mit dem der Benutzer volumetrischen Inhalt konsumiert, fügt auch eine zusätzliche Ebene von Blickwinkeln hinzu, die sich besser für mobile als für HMD-Erfahrungen eignen.
  • Um das Vorhandensein der Voreinstellungen der Konsumierungspräferenzen eines Benutzers zu verbessern und während der Erfahrung bestimmen physikalische Interaktionen bevorzugte Blickwinkel. Bei diesem System wird die physikalische Einstellung eines Benutzers in der „realen Welt“ berücksichtigt, um seine bevorzugten Blickwinkel in der volumetrischen Welt zu beeinflussen.
  • Um die personalisierten Blickwinkel eines Benutzers zu bestimmen, verwendet das Clustering diese Beschriftungen, um Ähnlichkeiten in den Vorerfahrungs-Interaktionen, den Interaktionen während der Erfahrung, und den Interaktionen der vergangenen Erfahrungen zu erkennen, um einen bevorzugten Blickwinkel eines Benutzers zu gewichten.
  • Beispiel 4: Wohin blickt der Benutzer (Echtzeit-Augen-/Kopfverfolgung)
  • Eine Ausführungsform der Erfindung macht sich die durch das VR-Headset des Benutzers ausgeführte Augen- oder Kopfverfolgung zunutze. Diese Ausführungsform fügt der Kameraauswahl einen Eindruck der Automatisierung in der Erfahrung hinzu, wobei sich die Kamera basierend auf der aktuellen Blickrichtung des Benutzers zu einem Standort bewegt/dorthin schwenkt. Wenn der Benutzer zum Beispiel auf den rechten Rand des Bildschirms blickt, dreht das System die Kamera basierend auf der Verfolgung der Augen des Benutzers nach rechts.
  • Dieselbe Idee kann auf das Konzept der Kopfverfolgung erweitert werden. Aktuelle VR-Systeme können eine Kopfbewegung erkennen. Diese Daten können für vorhersagende Analyse verwendet werden, um Kameras umzuschalten, oder den Benutzer an einen bestimmten Standort im 3D-Raum zu bewegen. Wenn sich ein Benutzer zum Beispiel in der Mitte des Spielfelds befindet und ein Spiel betrachtet, aber kontinuierlich auf die rechte Seite geblickt hat, dann bewegt eine Ausführungsform der Erfindung den Benutzer näher an diesen Raum oder schaltet zu einer in der Nähe dieses Raums angebotenen Kamera um, um es dem Benutzer automatisch zu ermöglichen, näher an diesem Raum liegende Dinge zu sehen. Es wird davon ausgegangen, dass keines der beiden obigen Beispiele dem Benutzer aufgezwungen wird, sondern dass dies vielmehr umschaltbare Funktionen wären, die nach Bedarf ein- oder ausgeschaltet werden können.
  • Erweitern von Benutzer-Sourced Datenanalyse in eine volumetrischen Erfahrung
  • Datenanalysen können von einer Gruppe von Benutzern oder einer von einer größeren Gruppe abgeleiteten Untergruppe gesammelt werden, um einem Benutzer innerhalb der volumetrischen Erfahrung Rückmeldung darüber zu geben, wie eine Gruppe oder Untergruppe durch Audio- und visuelle Hinweise mit dem volumetrischen Inhalt interagiert.
  • 19 veranschaulicht eine Wärmeabbildungsvisualisierung, die die relative Anzahl von Benutzern zeigt, die auf bestimmte Bereiche des Bildes blicken.
  • Gruppen- und Untergruppen-Wärmeabbildungen
  • Eine visuelle Darstellung davon, wo die größte Anzahl von Benutzern von Gruppen, denen man angehört, Benutzern von Gruppen, denen man nicht angehört, und individuell verfolgten Benutzern im volumetrischen Raum über eine Zeitdauer und im Raum verfolgt werden können. In ähnlicher Weise können Audiohinweise auch so arbeiten, dass sie Rückmeldung bereitstellen, dass die meisten Benutzer an einem Punkt in Zeit und Raum rund um einen bestimmten Blickwinkel herum platziert sind.
  • Diese Datendarstellung kann Benutzern einen Eindruck davon geben, welchen Blickwinkel sie zu erfahren bevorzugen würden.
  • Teilen der eigenen und Anzeigen der volumetrischen Erfahrungen von Einzelpersonen
  • In einer Ausführungsform wird Benutzern die Möglichkeit gegeben, ihre eigenen Blickwinkel durch eine volumetrische Erfahrung zu kuratieren (zum Beispiel, um eine Geschichte über das Ereignis zu erzählen), oder die geteilte volumetrische Erfahrung eines anderen Benutzers zu erfahren. Dieser Werkzeugsatz personalisierter Blickwinkel ermöglicht es Benutzern, andere volumetrische Erfahrungen von ihrer gewählten Perspektive zu teilen oder zu betrachten.
  • Diese geteilten Betrachtungsblickwinkel für einen Moment in der „realen Welt“ können aufgezeichnet oder gesendet werden, damit andere Benutzer sie erfahren. In einer Ausführungsform wird dies von innerhalb des Mediums erfüllt, in dem der Benutzer die Erfahrung in seiner HMD- oder mobilen Ansicht konsumiert (zum Beispiel über eine Client-Anwendung). Zusätzlich kann die geteilte volumetrische Erfahrung exportiert werden, um andere Benutzer durch soziale Medien 1260 zu erreichen, oder kann aufgezeichnet und gespeichert werden, um die kuratierten Blickwinkel zu einer anderen Zeit erneut durchzugehen.
  • Teilen der Reaktionen innerhalb volumetrischen Raums
  • Vor dem Exportieren von durch den Benutzer kuratierten Blickwinkeln für virtuelle Kameras kann ein Benutzer auch die volumetrische Inhaltserfahrung verbessern. Dies fügt dem gewählten Blickwinkel ein Element der Personalisierung hinzu.
  • Zum Beispiel integrieren Benutzer in einer Ausführungsform ihre eigenen personalisierten Reaktionen auf ein Stück volumetrischen Inhalts. Das Einnehmen des Standorts eines Benutzers innerhalb des volumetrischen Inhalts und das Zeitstempeln innerhalb einer Sequenz stellt die Möglichkeit bereit, Reaktionen wie Emoticons, aufgenommenes Audio oder andere Werkzeuge hinzufügen, um das Gefühl und die emotionale Reaktion eines Benutzers für die volumetrische Erfahrung der „realen Welt“ zu vermitteln.
  • Beispiel: Emoticons
  • Eine visuelle Darstellung der emotionalen Reaktion eines Benutzers kann an einem bestimmten Zeitstempel und einem bestimmten Standort in die volumetrische Erfahrung hinein erweitert werden. Diese benutzergesteuerten Betrachtungswinkelverbesserungen ermöglichen es Benutzern, ihre eigenen emotionalen Reaktionen auf eine Erfahrung zu teilen, und die anderer Benutzer zu sehen. In einer Ausführungsform werden Emoticons durch einen Benutzer in seinem Sichtfeld (FOV) für virtuelle Kamera platziert. Ein Benutzer kann auch die Emoticons anderer Benutzer, die für einen relevanten Blickwinkel angeordnet und in einer eingestellten Zeit platziert werden, in Live- und Nicht-Live-Erfahrungen sehen.
  • VIDEOQUALITÄTSMESSUNG FÜR VIRTUELLE KAMERAS IN VOLUMETRISCHEN IMMERSIVEN MEDIEN
  • Wie oben beschrieben, rendert eine virtuelle Kamera eine kontinuierliche Ansicht von Live-Punktwolkendaten, die von einem Spektrum physikalischer Kameras erzeugt wurden, die in einem Ereignisveranstaltungsort, wie zum Beispiel einem Stadion, installiert sind, und bietet eine innovative und personalisierte Weise, das Ereignis von jeglichem Standort zu betrachten.
  • Die unten beschriebenen Ausführungsformen der Erfindung stellen eine quantitative Messung der visuellen Qualität einer virtuellen Kamera bereit. In einer Implementierung wird eine virtuelle Kamera (VCAM) mit einer physikalischen Kamera (PCAM) ausgerichtet, und eine Pixel-zu-Pixel-Entsprechung wird zwischen den VCAM- und PCAM-Bildern eingerichtet, nachdem Verzerrungen und Fehlausrichtungen kompensiert wurden. Es wird eine Qualitätsmetrik abgeleitet, die als der Virtual-Camera-Quality-Composite (VCQC) -Score bezeichnet wird. In einer spezifischen Ausführungsform werden vier Messungen dazu verwendet, den VCQC-Score zu bestimmen: Peak-Signal-to-Noise-Ratio (PSNR), Structural-Similarity-Metric (SSIM), Point-Cloud-Voxel-Density(PVD) und Body-Shape-Contour-Fitness (BCF). Somit wird, zusätzlich zu pixelbasierten objektiven Messungen (zum Beispiel PSNR) und strukturbasierten subjektiven Metriken (zum Beispiel SSIM), das Rendern von Punktwolkendaten (PVD) in Kombination mit der Konturvollständigkeit von Spielern (BCF) für eine präzisere Qualitätsmessung beurteilt.
  • Volumetrisches immersives Mediensystem
  • Wie in 20 veranschaulicht, sind für ein immersives volumetrisches Mediensystem „N“ Kameras 2010A-C rund um Ereignisveranstaltungsort 2021 platziert, die das Ereignis von unterschiedlichen Winkeln erfassen, wobei sie eine 360°-Ansicht des Stadions vervollständigen. In einer Ausführungsform enthält jede der „N“ Kameras 2010A-C einen einzelnen Sensor, der RAW-Daten mit einer Frame-Auflösung von 5120 x 3072 (5K) bei 8 Bit pro Pixel und bei 30 fps erfasst. Es ist jedoch zu beachten, dass die zugrunde liegenden Prinzipien der Erfindung nicht auf diese spezifischen Konfigurationen beschränkt sind.
  • Jede Kamera 2010A-C ist mit Bildverarbeitungsblock 2020A-C verbunden, der in einer Ausführungsform 5K RAW 8bpp-Bilder in 5K RGB 24-Bit-Bilder umwandelt, gefolgt durch eine Umwandlung in YUV420 und verkleinert auf 4080 x 2448 (4K). 5k-RAW-Bild-Streams 2027A-C können in Speicherungsdatenbank 2030 gespeichert werden, um für eine spätere Verwendung (zum Beispiel für Bildvergleiche wie hierin beschrieben) verfügbar zu sein. In einer Implementierung wird H.264-Codierung auf die 4080 x 2448 (4K) -Bilder angewendet, durch Verwenden einer GOP-Größe von 30 und einer Datenrate von 120 Mbps. Resultierende H.265-Streams 2026A-C werden dann über Netzwerk 2090 (zum Beispiel das Internet) an Cloud-Dienst 2041 übertragen. In der Cloud 2041 werden die eingehenden H.264 4080 x 2448 @ 120 Mbps-Streams durch Verwenden eines oder mehrerer Video-Decodierer 2040A-C decodiert, um NV12-YUV-Frames (das heißt 4:2:0-Frames bei 30 FPS) auszugeben. Wie erwähnt, sind jedoch die zugrunde liegenden Prinzipien der Erfindung nicht auf jegliches bestimmtes Protokoll oder jeglichen bestimmten Satz von Konfigurationsparametern beschränkt.
  • Bezugnehmend auf 21, beinhaltet eine Ausführungsform Stabilisator 2102, der NV12 YUV 30 FPS-Stream 2152 verarbeitet, um einen Stabilisierungsvektor zu erzeugen, Verzerrung zu entfernen und die Bilder zu verketten. Erkennungsblock 2105 nimmt durch den Stabilisator 2102 erzeugte stabilisierte Frames 2153 zusätzlich zu YUV-Frames 2151 mit sauberem Hintergrund (Clean Background - CB) auf, die das Video umfassen, das aufgezeichnet wird, wenn der Ereignisveranstaltungsort 2021 leer ist, sodass keine Spieler oder Objekte den Hintergrund (zum Beispiel einen Basketballplatz oder ein Football-Feld) versperren. Der Erkennungsblock 2105 identifiziert Objekte, wie zum Beispiel Spieler innerhalb des stabilisierten Streams 2153 durch Vergleichen der stabilisierten Frames 2153 mit den CB-Frames 2151. In einer Ausführungsform erzeugt der Erkennungsblock 2105 bis zu 200 Vordergrund (Foreground - FG) -Schnitte von in jedem Frame erfassten Objekten und ihrer entsprechenden Bereiche von Interesse (Regions-Of-Interest - ROI). In dieser Ausführungsform weist der Erkennungsblock 2105 jedem Objekt eine eindeutige ID, X- und Y-Koordinaten, einen Breitenwert und einen Höhenwert zu, wodurch für jedes Objekt Begrenzungsrahmeninformationen erzeugt werden. Die Spieler, der Ball und jegliche anderen Objekte von Interesse auf dem Spielfeld werden somit erkannt und von dem Hintergrund getrennt.
  • In einer Ausführungsform nimmt Segmentierungsblock 2125 die Vordergrundschnitte und ROI 2154 auf und erzeugt segmentierte Vordergrundmaskenschnitte 2156 und ihre entsprechenden ROI. Auf dieser Stufe wurden alle zugeschnittenen Objekte auf dem Spielfeld zusammen mit ihren Größen und Positionen identifiziert.
  • In einer Ausführungsform erzeugt auf-dem-Spielfeld-Rekonstruktionsblock 2130 eine Punktwolke von Objekten auf dem Spielfeld 2161 („innere“ Punktwolke) basierend auf den segmentierten Vordergrundmaskenschnitten 2156 durch Verwenden eines ersten Satzes von Punktwolkenerzeugungstechniken. Eine detailliertere Darstellung der inneren Punktwolken 2161 wird in 22 bereitgestellt.
  • Äußerer Rekonstruktionsblock 2110 erzeugt eine Punktwolke von Objekten von Spielfeld 2160 („äußere“ Punktwolke) basierend auf Farbvordergrundschnitten, Maskenschnitten und ROI-Daten 2158 durch Verwenden eines zweiten Satzes von Punktwolkenerzeugungstechniken. In einer Ausführungsform umfasst der erste Satz von Punktwolkenerzeugungstechniken Form-aus-Silhouette-3D-Rekonstruktionstechniken (zum Beispiel visuelle Hüllverarbeitung) und Levelset-Verarbeitungstechniken. Der zweite Satz von Punktwolkenerzeugungstechniken beinhaltet einen punktbasierten Render-Ansatz, basierend auf Objektraum-Punktinterpolation, wie zum Beispiel XGen.
  • In einer Ausführungsform führt der Stabilisator 2102 auch eine Umformung, wie zum Beispiel die Direct-X-Transform (DXT) aus, um unkomprimierte stabilisierte Bilder 2157 zu erzeugen. Wenn DXT verwendet wird, können die unkomprimierten stabilisierten Bilder 2157 DXT1-RGB-Texturen umfassen. In dieser Implementierung nimmt Renderer 2135 alle „N““ DXT1-Texturen mit inneren und äußeren Punktwolken 2160-2161 auf und rendert 2D-Bild 2175 basierend auf Kamerasteuerungs-Eingabekoordinaten 2170, wobei eine aktuelle Position und Blickrichtung einer virtuellen Kamera (zum Beispiel wie durch Benutzereingabe spezifiziert) angezeigt wird. Die virtuelle Kamera ermöglicht es dem Endbenutzer, das Ereignis von jeglichem Punkt auf dem Spielfeld mit jeglichen normalen 2D-Anzeigegeräten, einschließlich Mobiltelefonen und Tablets, zu betrachten. Alternativ kann der Benutzer sich auch die hierin beschriebenen Techniken durch Verwenden eines Virtual-Reality Head-Mounted-Device (HMD) zunutze machen.
  • Der Renderer 2135 verwendet die Steuerungskoordinaten 2170 der virtuellen Kamera, um die korrekte Position und Ausrichtung für den an die Anzeige des Benutzers gelieferten unkomprimierten Bild-Stream 2175 zu bestimmen. Während der unkomprimierte Bild-Stream 2175 in der oben beschriebenen Ausführungsform ein 2D-Bild-Stream ist, erzeugt eine alternative Ausführungsform einen 3D-Panoramabild-Stream.
  • Eine Ausführungsform der Erfindung beinhaltet eine Schaltung und Logik zum Messen der Qualität des für jede virtuelle Kamera erzeugten Bildes (zum Beispiel an den durch Benutzer spezifizierten Koordinaten 2170), um sicherzustellen, dass die Qualität über einem spezifizierten Schwellenwert liegt. In einer Ausführungsform ist es das Ziel, die Qualität der virtuellen Kamera an die einer physikalischen Kamera anzupassen.
  • Eine Ausführungsform einer Vorrichtung zum Bestimmen der objektiven Videoqualität einer virtuellen Kamera ist in 23 dargestellt.
  • Schritt 1: In einer Ausführungsform wird virtuelle Kamera (VCAM) 2310 anfänglich an dem Standort von physikalischer Kamera (PCAM) 2305 platziert (zum Beispiel werden die Koordinaten der virtuellen Kamera auf die Koordinaten der PCAM 2305 eingestellt). Das physikalische Kamerareferenzbild stellt die Grundwahrheit für eine virtuelle Kamera 2310 bereit. Folglich wird in einer Ausführungsform die VCAM 2310 von jeder der „N““ PCAM 2305-Koordinaten dirigiert, um die Szenen zu rendern, und das Video einer PCAM 2305 als Referenz für die VCAM 2310 zum Vergleich zu verwenden.
  • Schritt 2: Erkennen des Bereichs von Interesse. Verschiedene Echtzeit-Objekterkennungstechniken können eingesetzt werden, um Bereiche von Interesse für die Qualitätsmessungen zu identifizieren. Einer der Algorithmen ist „You Only Look Once (YOLO)“. YOLOv3 ist extrem schnell und präzise und wendet einzelnes neuronales Netzwerk 2315 auf das Gesamtbild an. In einer Ausführungsform unterteilt das neuronale Netzwerk 2315 das Bild in Bereiche und sagt Begrenzungsrahmen 2320 und Wahrscheinlichkeiten für jeden Bereich vorher. Zum Beispiel können die Begrenzungsrahmen 2320 gemäß den vorhergesagten Wahrscheinlichkeiten gewichtet werden. Das neuronale Netzwerk 2315 beurteilt das gesamte Bild zur Testzeit, sodass seine Vorhersagen durch globalen Kontext in dem Bild informiert werden. Es macht auch Vorhersagen mit einer einzelnen Netzwerkbeurteilung, im Gegensatz zu Systemen, wie zum Beispiel R-CNN (Bereiche mit neuronalen Faltungsnetzwerken), die Tausende von Beurteilungen für ein einzelnes Bild erfordern. Dies macht es extrem schnell, mehr als 1000x schneller als R-CNN und 100x schneller als „schnelles“ R-CNN.
  • Eine Ausführungsform verwendet vorab trainierte Gewichte („yolov3.weights“) und führt das neuronale Netzwerk 2315 aus, um Spieler auf dem Spielfeld oder dem Platz zu erkennen, und zeichnet Begrenzungsrahmen 2320, die sie umgeben. Diese vorab trainierten Gewichte sind generisch, und daher liegt die Ausführungszeit in wenigen hundert Millisekunden. Das Modell wird jedoch durch Training durch Verwenden der von der physikalischen Kamera 2305 in Live-Spielen erzeugten Muster angepasst, wodurch die Größe der Gewichtsdatei reduziert wird. Dies führt zu einer drastischen Verbesserung der Leistung des neuronalen Netzwerks 2315, das Objekte in wenigen Millisekunden in Echtzeit erkennen kann.
  • In 24 entsprechen die Bilder auf der linken Seite der PCAM 2305, und die Bilder auf der rechten Seite entsprechen der VCAM 2310, die an dem Standort und in der Ausrichtung der PCAM 2305 gerendert wurden. Obere Reihe 2401 zeigt die ursprünglichen PCAM/VCAM-Bilder. Mittlere Reihe 2402 ist die Ausgabe von YOLO mit zwei in der Szene erkannten Objekten, und dritte Reihe 2403 ist eine vergrößerte Version der mittleren Reihe 2402.
  • Zurückkehrend zu 23, richtet PCAM/VCAM-Pixel-zu-Pixel-Abbilder 2330 eine Pixel-zu-Pixel-Entsprechung zwischen PCAM- und VCAM-Bildern ein. Der Vergleich des Videos einer PCAM 2305 mit dem einer VCAM 2310 ist nicht unkompliziert. Erstens leiden die beiden Videostreams unter unterschiedlichen Artefakten und Fehlern. Während ein PCAM-Videostream typische Artefakte wie Lichtreflexe, Linsenverzerrung, Sensorstaub, unterschiedliche Farbbalance hat, leidet ein VCAM-Videostream an Rekonstruktions- und Quantisierungsfehlern. Zweitens ist nicht garantiert, dass die beiden Bild-Frames von PCAM- und VCAM-Streams eine Pixel-zu-Pixel-Entsprechung haben, insbesondere wenn die PCAM ein breiteres Sichtfeld hat.
  • Eine Ausführungsform des PCAM/VCAM-Pixel-zu-Pixel-Abbilders 2330 beinhaltet eine Vorverarbeitungsschaltung und/oder -logik, um Verzerrungen in PCAM-Bildern zu kompensieren und die Pixel-zu-Pixel-Entsprechung zwischen PCAM- und VCAM-Bildern einzurichten.
  • 25 veranschaulicht eine bestimmte Implementierung eines PCAM-Videostreams 2305, der als eine Referenz für einen VCAM-Videostream 2310 verwendet wird.
  • Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen
  • In einer Ausführungsform werden Anker an stabilen Bildmerkmalen innerhalb von Begrenzungsrahmen in dem PCAM-Videostream 2305 platziert. Subband-Bildzerlegungsschaltung/-logik 2501 führt eine polartrennbare Zerlegung in der Frequenz-Domain aus (zum Beispiel durch Verwenden einer Subband-Bildzerlegungstechnik, wie zum Beispiel Gabor-Filter und lenkbare Pyramide). Dies stellt eine unabhängige Darstellung von Maßstab und Ausrichtung für einen Video-Frame bereit. Die Subband-Bildzerlegungsschaltung/-logik 2501 erzeugt eine Energieabbildung für unterschiedliche Maßstäbe und Ausrichtungen, die sich von der Subbandzerlegung ableitet, jedoch den Bändern mit einem mittelgroßen Maßstab eine erhebliche Vorspannung bereitstellt. Die Intensität der resultierenden Energieabbildung wird nach gewichteter Summierung und Schwellenwertbildung 2502 dazu verwendet, PCAM-Anker in dem PCAM-Video 2520 zuzuweisen, die das Vorhandensein stabiler Bildmerkmale markieren, um eine Entsprechung einzurichten.
  • Einrichten einer Entsprechung durch Verwenden von Ankern
  • Blockabgleichungsschaltung/-logik 2503 verwendet die Anker in dem PCAM-Video 2520 dazu, die am besten übereinstimmenden Standorte in dem VCAM-Video 2310 zu finden. Wie zuvor beschrieben, werden in einer Ausführungsform Video-Frames von unterschiedlichen Quellen durch Verwenden eines 90kHz-Referenztakts zeitgestempelt und synchronisiert. Jeglicher Typ von Blockabgleichsalgorithmus kann dazu verwendet werden, die Entsprechung basierend auf den Ankern einzurichten. Da es eine relativ spärliche Verteilung von Ankern geben kann, ist die Rechenanforderung für die Blockabgleichsschaltung/-logik 2503 nicht signifikant. Die am besten übereinstimmende Position wird als der neue Standort der Anker in VCAM-Videobildern 2521 für die entsprechenden VCAM-Videoanker 2520 verwendet. Auf dieser Stufe ist eine Anker-zu-Anker-Entsprechung zwischen PCAM-Videostreams und VCAM-Videostreams erreicht worden.
  • Normalisieren von Begrenzungsrahmen durch Verwenden eines verformbaren Netzes
  • In einer Ausführungsform wendet Überlagerungsschaltung/-logik für verformbares Netz 2504 ein verformbares Netz von Lagrange-Elementen auf die VCAM-Bild-Frames mit Ankern 2521 an, und Netzüberlagerungsschaltung/-logik 2514 wendet ein verformbares Netz von Lagrange-Elementen auf die PCAM-Bild-Frames mit Ankern 2520 an, sodass jede Knotenposition eines Lagrange-Elements mit der Position der Anker übereinstimmt. Ein verformbares Lagrange-Element ist geeignet, da die Darstellung von Pixeln innerhalb des Elements nicht starr und Modell für die 2. Ordnung ist.
  • Bezugnehmend auf 26A, kann mit der Platzierung des verformbaren Netzes das gesamte Netz mit unregelmäßigen Elementen Dm 2600 durch Lagrange-Transformationsblöcke 2505, 2515 (für das VCAM-Netz bzw. das PCAM-Netz) auf ein Rechteck mit regulären übergeordneten Elementen Km 2601 normalisiert werden. Dieser Normalisierungsprozess durch Verwenden einer Formfunktion kompensiert jegliche den Video-Frames eigene Verzerrung. Ein bestimmtes Beispiel einer Formfunktion ist in 26B veranschaulicht. Die zuvor eingerichtete Anker-zu-Anker-Entsprechung kann durch die Lagrange-Transformationsblöcke 2505, 2515 dazu verwendet werden, eine Pixel-zu-Pixel-Entsprechung zwischen PCAM- und VCAM-Bild-Frames zu erzwingen, wenn beide dieselbe Normalisierung erfahren.
  • Berechnen von Qualitätsmessungsmetriken
  • Wie in 23 gezeigt, werden in einer Implementierung nach dem Einrichten von Pixel zu Pixel-Entsprechung zwischen PCAM- und VCAM-Bildern objektive Qualitätsmessungsmetriken 2340 bestimmt. Eine oder mehrere der folgenden vier Typen von Qualitätsmessungen können als die Basis für die metrische Beurteilung verwendet werden: Mean-Squared-Error (MSE) 2341; Structural-Similarity (SSIM) 2342; Point-Cloud-Voxel-Density (PVD) 2343; und Body-Shape-Contour-Fitness (BCF) 2344.
  • Mean-Squared-Error (MSE)
  • Mean Squared Error (MSE) stellt den Abstand zwischen Pixelintensitäten bereit. Ein Wert von 0 für MSE zeigt eine perfekte Ähnlichkeit an, während ein Wert größer als eins eine geringere Ähnlichkeit impliziert und fortfahren wird zu wachsen, wenn der durchschnittliche Unterschied zwischen Pixelintensitäten ebenfalls zunimmt. Der MSE der beiden Bilder kann wie folgt berechnet werden: M S E = 1 m   n i = 0 m 1 j = 0 n 1 [ P ( i , j ) V ( i , j ) ] 2
    Figure DE102020124815A1_0001
    wobei P(i, j) und V(i, j) Pixelwerte von PCAM- bzw. VCAM-Bildern an Standort (i, j) sind. In dem veranschaulichten Beispiel wird ein hoher MSE von 393,66 für Person 1 beobachtet, wie in 27A gezeigt, und ein MSE von 902,71 für Person 2 in 27B. Es werden auch Werte für SSIM, Graustufen-MSE und MSE für die Y-, U- und V-Koordinaten gezeigt.
  • Structural-Similarity (SSIM)
  • Große Abstände zwischen Pixelintensitäten bedeuten nicht notwendigerweise, dass die Inhalte der Bilder dramatisch unterschiedlich sind. Um einige der mit MSE verbundenen Probleme für den Bildvergleich zu beheben, kann der Structural-Similarity-Index (SSIM) verwendet werden. Im Gegensatz zum MSE kann der SSIM-Wert zwischen -1 und 1 variieren, wobei 1 eine perfekte Ähnlichkeit anzeigt. Der SSIM der beiden Bilder kann wie folgt bestimmt werden: S S I M ( x , y ) = ( 2 μ x μ y + c 1 ) ( 2 σ x , y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 )
    Figure DE102020124815A1_0002
    wobei ux, uy der Durchschnitt und σ x 2
    Figure DE102020124815A1_0003
    und σ y 2
    Figure DE102020124815A1_0004
    die Varianz von x bzw. y sind, und σxy die Kovarianz von x und y ist. Die Variablen c1, c2 sind zwei Variablen, die dazu verwendet werden, die Division mit einem schwachen Nenner zu stabilisieren. SSIM versucht, die wahrgenommene Änderung der Strukturinformationen des Bildes zu modellieren, wohingegen MSE die wahrgenommenen Fehler tatsächlich schätzt. In dem veranschaulichten Beispiel werden niedrige SSIM-Scores für Person 1 in 27A (0,9216) und Person 2 in 27B (0,7874) beobachtet.
  • Point-Cloud-Voxel-Density (PVD)
  • Point-Cloud-Voxel-Density (PVD) zeigt den Grad der Kompaktheit von Punkten in einer Punktwolke an. Wenn die PVD zu niedrig ist, können größere Voxelgrößen ausgewählt werden, um den Raum zu füllen, dies kann jedoch zu einem blockartig gerenderten Bild führen. Wenn andererseits die Voxelgröße verglichen mit dem Zwischenraum von Punkten zu klein ist, kann das Rendern signifikante nicht ausgefüllte Räume haben. Dies ist in 28 zu sehen, wo Bild oben links 2801 einem spärlichen Rendern basierend auf Punktgröße 1 entspricht, und Bild rechts unten 2802 einem blockartigen Rendern basierend auf Punktgröße 6 entspricht. Die Bilder dazwischen von rechts nach links und von oben nach unten entsprechen aufeinanderfolgend größeren Punktgrößen (zum Beispiel 2-5).
  • 29 veranschaulicht eine Reihe von Voxeln mit Punktgröße „s“, die an Ursprung O1, O2,... O11 zentriert sind, was bei einem Abstand „r“ von den Eckpunkten des Würfels ist, gemessen als: r = s 3 2
    Figure DE102020124815A1_0005
    wohingegen „dk“ der Abstand zwischen den nächsten Nachbarn ist.
  • Der euklidische Abstand zwischen zwei Punkten O1 (x1, y1, z1) und O2 (x2, y2, z2) wird in einem 3D-Raum gemessen als: d k = ( x 2 x 1 ) 2 + ( y 2 y 1 ) 2 + ( z 2 z 1 ) 2
    Figure DE102020124815A1_0006
    wobei k ∈ [1, N - 1] und „N“ die Gesamtzahl der Punkte in der Punktwolke ist.
  • Die durchschnittliche Entfernung zwischen den nächsten Nachbarn in einer Punktwolke wird bestimmt durch: r θ = 1 N k = 1 N 1 d k    a n d    s θ = 2 r θ 3
    Figure DE102020124815A1_0007
    wobei „sθ“ die optimale Punktgröße des Voxels ist.
  • Um Punkte in einer Punktwolke zu ahnden, die spärlich verteilt sind, wird das Verhältnis der Punkte in dem durch die vorherige Operation erzeugten Begrenzungsrahmen und das Volumen des Quaders bestimmt. ψ = # ( Punkte innerhalb des Begrenzungsrahmens ) / . l . h
    Figure DE102020124815A1_0008
    wobei „w“ die Breite, „/“ die Länge und „h“ die Höhe des von der VCAM auf der Punktwolke erzeugten Begrenzungsrahmens ist.
  • Body-Shape-Contour-Fitness (BCF)
  • Wie diskutiert, richteten die normalisierten PCAM- und VCAM-Bild-Frames in dem Vorverarbeitungsblock eine Pixel-zu-Pixel-Entsprechung zwischen den beiden Bildern ein. Während MSE und SSIM eine objektive und subjektive Bewertung von Ähnlichkeiten zwischen ihnen bereitstellen, berücksichtigen diese Maßnahmen nicht die der PCAM eigenen Artefakte.
  • Um diese Einschränkung anzusprechen, beinhaltet eine Ausführungsform der Erfindung ein Body-Shape-Contour-Fitness (BCF) -Maß für die Qualität einer virtuellen Kamera, die solche Artefakte nicht erleidet. Die zentrale Idee für BCF ist es, die Konturen zwischen PCAM- und VCAM-Bildern zu vergleichen. Diese Maßnahme ist die beste, um die problematischen Bereiche bei der Rekonstruktion, wie zum Beispiel Riss, fehlendes Hinken, kastenförmiger Effekt und übermäßige Diskontinuitäten in den VCAM-Bild-Frames zu lokalisieren.
  • 30 veranschaulicht eine Ausführungsform einer Vorrichtung zum Implementieren einer Sequenz von Operationen, um einen BCF-Score zu erzeugen. In einer Ausführungsform beginnt die BCF mit Kantendetektor 2501, der eine Kantenerkennung des PCAM-Bild-Frames 2305 ausführt, und Kantendetektor 2511, der eine Kantenerkennung des VCAM-Bild-Frames 2310 ausführt. Jegliche Form von Kantenerkennungsfiltern, wie zum Beispiel Erkennungsfilter kniffliger Kanten, kann verwendet werden. Das Ziel ist es, starke Kontinuitäten von den extrahierten Kanten zu identifizieren.
  • In einer Implementierung wenden die lenkbare Pyramide und die Energieabbildungslogik 2502, 2512 eine Bandzerlegung (zum Beispiel lenkbare Pyramide) auf die durch die Kantendetektoren 2501 bzw. 2511 identifizierten Kanten an. In einer Ausführungsform ist mehr Vorspannung für große Maßstabsgrößen und horizontale und vertikale Ausrichtungen beim Bilden der Energieabbildung gegeben. Durch Verwenden der Energieabbildung werden jene Kanten, die eine hohe Energiegröße (zum Beispiel über einem bestimmten Schwellenwert) haben, bewahrt und an aktive Konturanpassungslogik 2403, 2513 weitergegeben.
  • Anpassen mit aktiven Konturen
  • In einer Ausführungsform umfasst die aktive Konturanpassungslogik 2503, 2513 einen verformbaren Spline, der zu einer „starken“ Kante passt, die von der lenkbaren Pyramide 2502 bzw. der Energieabbildungslogik 2512 bereitgestellt wird. Die aktive Kontur verwendet eine Kombination von Energiebegriffen, um eine optimierte Kontur in Bezug auf Linien, Kanten und Kontinuitäten zu geben. Nach der aktiven Konturanpassung sowohl für PCAM- als auch für VCAM-Frames wird Konturabbildung 2504, 2514 ausgeführt, um die Entsprechung zwischen einer Kontur in PCAM bzw. einer Kontur in VCAM zu bestimmen. In einer Ausführungsform wird dies durch Anpassen der Nähe zwischen den beiden Konturen, ihre relative Länge zueinander und die Abweichung ihrer Hauptausrichtung erfüllt.
  • Berechnen des Abstands zwischen Konturpaaren
  • In einer Implementierung bestimmt Abstandsberechnungslogik 2505 die Differenz oder den „Abstand“ zwischen jedem von der Konturabbildungslogik 2504 und 2514 bereitgestellten Konturpaar. Zum Beispiel kann der Frechet-Abstand verwendet werden, der ein Maß für die Ähnlichkeit zwischen Kurven ist, das sowohl den Standort als auch die Reihenfolge der Punkte entlang der Kurven berücksichtigt. Abstandsgewichtungslogik 2506 wendet Gewichte an, um endgültigen BCF-Score 2507 zu erzeugen. Der BCF-Score ist die Summe aller Abstände mit Gewichten, die langen und kontinuierlichen Kurven Vorspannung geben.
  • Berechnung des Virtual-Camera-Quality-Composite (VCQC) -Score
  • Erneut bezugnehmend auf 23, beinhaltet eine Ausführungsform der Erfindung neuronales Netzwerk der Qualität der virtuellen Kamera 2350, um endgültigen Qualitätswert 2360 basierend auf den oben beschriebenen Qualitätsmetriken 2340 zu erzeugen. Insbesondere beinhalten die Qualitätsmessungsmetriken 2340 eines oder mehrere von: MSE 2341, SSIM 2342, PVD 2343 und BCE 2344, die als die Eingaben verwendet werden. In einer Ausführungsform verwendet ein anderes neuronales Netzwerk 2350, hier bezeichnet als „neuronales Netzwerk der Qualität der virtuellen Kamera“, diese Eingaben dazu, einen Virtual-Camera-Quality-Composite (VCQC) -Score 2360 zu erzeugen.
  • In einer bestimmten Implementierung sind die Trainingsbeispiele 10 - 20 Sekunden lange Ausschnitte von 1920x1080 @ 30 fps, die von Live-Ereignissen an dem Ereignisveranstaltungsort (zum Beispiel Basketballplatz, Football-Stadion, usw.) erzeugt werden können. Die Punktwolke kann mit einer von 1 bis 7 variierenden Punktgröße aufgebaut werden, und die entsprechenden VCAM-Videosequenzen werden gerendert. Der Mean-Opinion-Score (MOS) in dem Bereich von [0, 100] wird als die subjektive Qualitätsbewertung 2360 jeder dieser Sequenzen bereitgestellt. In einer Ausführungsform wird das neuronale Netzwerk 2350 dazu trainiert, die Gewichte fein abzustimmen und einen endgültigen VCQC-Score 2360 zu erzeugen.
  • 31 veranschaulicht eine Gegenüberstellung von PCAM- und VCAM-Bildern durch Verwenden der obigen Techniken. PCAM-Bild 3101A und VCAM-Bild 3101B werden gezeigt, wenn die Erkennung von kniffligen Kanten verwendet wird. Die Erkennung starker Kanten ist in Bildern 3102A-B gezeigt. Die aktive Konturmodellschlange ist für PCAM/VCAM-Bilder 3103A-B gezeigt, und die Berechnung des Frechet-Abstands zwischen jedem Konturpaar ist für PCAM/VCAM-Bilder 3104A-B gezeigt.
  • Eine Ausführungsform eines Verfahrens zum Bestimmen der Qualität einer virtuellen Kamera ist in 32 veranschaulicht. Das Verfahren kann innerhalb des Kontexts der oben beschriebenen Systemarchitekturen implementiert werden, ist jedoch nicht auf jegliche bestimmte Architektur beschränkt.
  • Bei 3201 wird eine virtuelle Kamera an dem Standort und in der Richtung einer physikalischen Kamera platziert. Wie erwähnt, kann, da die PCAM in dieser Ausführungsform die Grundwahrheit für eine VCAM bereitstellt, die VCAM von jeder der „N“ PCAM-Koordinaten dirigiert werden, um die Szenen zu rendern, und das Video einer PCAM als Referenz für die VCAM zum Vergleich zu verwenden.
  • Bei 3202 werden Bereiche von Interesse (ROI) identifiziert. In einigen der obigen Beispiele sind die ROI Bilder von Basketballspielern auf dem Basketballplatz. Verschiedene unterschiedliche Objekterkennungstechniken können dazu verwendet werden, ROI zu identifizieren. In einer bestimmten Implementierung kann ein neuronales Netzwerk oder eine andere Implementierung maschinellen Lernens dazu verwendet werden, die verschiedenen Bereiche von Interesse innerhalb der PCAM-Bilder zu identifizieren, und als Reaktion darauf ROI-Begrenzungsrahmen und zugehörige Metadaten (zum Beispiel Anzeigekoordinaten, Breite, Höhe, usw.) zu erzeugen.
  • Bei 3203 wird die Pixel-zu-Pixel-Entsprechung zwischen den PCAM-Bildern und den VCAM-Bildern bestimmt. In einer Ausführungsform beinhaltet dies das Platzieren von Ankern an stabilen Bildmerkmalen innerhalb des PCAM-Videos, das Einrichten einer Entsprechung zwischen den VCAM- und PCAM-Bildern durch Verwenden der Anker, das Normalisieren von Begrenzungsrahmen durch Verwenden eines verformbaren Netzes, und das Ausführen einer Lagrange-Transformation. Verschiedene andere Techniken können jedoch dazu verwendet werden, die Pixel-zu-Pixel-Entsprechung zu bestimmen, abhängig von der Qualität und dem Format der VCAM- und/oder PCAM-Bilder.
  • Bei 3204 werden die VCAM-Bilder durch Verwenden verschiedener Qualitätsmessungsmetriken beurteilt. Wie erwähnt, können die Qualitätsmessungsmetriken eines oder mehrere von Folgendem beinhalten: Mean-Squared-Error (MSE), Structural-Similarity (SSIM), Point-Cloud-Voxel-Density (PVD), und Body-Shape-Contour-Fitness (BCF). Während diese Qualitätsmessungsmetriken als Beispiele bereitgestellt werden, können verschiedene andere Qualitätsmessungsmetriken verwendet werden.
  • Bei 3205 werden die Qualitätsmessungsmetriken kombiniert, um einen Virtual-Camera-Quality-Composite (VCQC) -Wert zu erreichen. In einer Ausführungsform wird dies mit einem tiefen neuronalen Netzwerk oder einer anderen Implementierung maschinellen Lernens erfüllt, wobei die Qualitätsmessungsmetriken als Eingaben verwendet werden, und ein einzelner Virtual-Camera-Quality-Composite (VCQC) -Score als eine Ausgabe erzeugt wird.
  • Die Verwendung virtueller Kameras wird bald ein wichtiges Merkmal für volumetrische immersive Medien werden. Infolgedessen ist die Fähigkeit, die Wahrnehmungsqualität von virtuellen Kameras wie oben beschrieben zu messen, kritisch für die automatische Auswahl hochwertiger Ansichten für Benutzer, und damit für die Verbesserung der gesamten volumetrischen Videoerfahrung.
  • BEISPIELE
  • Das Folgende sind beispielhafte Implementierungen unterschiedlicher Ausführungsformen der Erfindung.
  • Beispiel 1. Ein Verfahren, das Folgendes umfasst: Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; Erzeugen eines zweiten Bildes von einer virtuellen Kamera (VCAM), die an den ersten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  • Beispiel 2. Das Verfahren von Beispiel 1, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild umfasst.
  • Beispiel 3. Das Verfahren von Beispiel 1, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild umfasst.
  • Beispiel 4. Das Verfahren von Beispiel 3, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild ferner das Ausführen einer Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts, das Ausführen einer Structural-Similarity (SSIM) -Beurteilung zum Erzeugen eines SSIM-Werts, das Ausführen einer Point-Cloud-Voxel-Density (PVD) - Beurteilung zum Erzeugen eines PVD-Werts und/oder das Ausführen einer Body-Shape-Contour-Fitness (BCF) -Beurteilung zum Erzeugen eines BCF-Werts umfasst.
  • Beispiel 5. Das Verfahren von Beispiel 4, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Implementieren eines neuronalen Netzwerks durch Verwenden eines oder mehrerer des MSE-Werts, SSIM-Werts, PVD-Werts und/oder BCF-Werts als Eingaben umfasst, wobei das neuronale Netzwerk als Reaktion darauf den Qualitätswert erzeugen soll.
  • Beispiel 6. Das Verfahren von Beispiel 1, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  • Beispiel 7. Das Verfahren von Beispiel 1, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
  • Beispiel 8. Das Verfahren von Beispiel 7, wobei die Objekterkennungsoperationen durch Verwenden von Gewichten durch ein neuronales Netzwerk ausgeführt werden, wobei das erste Bild als Eingabe verwendet wird und Bereiche von Interesse als Ausgabe erzeugt werden.
  • Beispiel 9. Das Verfahren von Beispiel 1, das ferner Folgendes umfasst: Erkennen von Bereichen von Interesse innerhalb eines dritten Bildes, das von einer zweiten PCAM erzeugt wird, die an zweiten Koordinaten positioniert ist; Erzeugen eines vierten Bildes von einer virtuellen Kamera (VCAM), die an den zweiten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem dritten Bild und dem vierten Bild; und Bestimmen eines Qualitätswerts für das vierte Bild durch Beurteilen des vierten Bildes im Hinblick auf das dritte Bild.
  • Beispiel 10. Ein System, das Folgendes umfasst: einen Bereich von Interesse (ROI) -Detektor zum Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; virtuelle Kameraschaltung und/oder -logik zum Erzeugen eines zweiten Bildes, das an den ersten Koordinaten positioniert ist; Bildvergleichsschaltung und/oder - logik zum Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; einen Bildqualitätsbeurteiler zum Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  • Beispiel 11. Das System von Beispiel 10, wobei der Bildqualitätsbeurteiler das zweite Bild im Hinblick auf das erste Bild durch Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild beurteilen soll.
  • Beispiel 12. Das System von Beispiel 10, wobei der Bildqualitätsbeurteiler das zweite Bild im Hinblick auf das erste Bild durch Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild beurteilen soll.
  • Beispiel 13. Das System von Beispiel 12, wobei der Bildqualitätsbeurteiler eine Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts ausführen soll, eine Structural-Similarity (SSIM) -Beurteilung zum Erzeugen eines SSIM-Werts ausführen soll, eine Point-Cloud-Voxel-Density (PVD) -Beurteilung zum Erzeugen eines PVD-Werts ausführen soll und/oder eine Body-Shape-Contour-Fitness (BCF) - Beurteilung zum Erzeugen eines BCF-Werts ausführen soll.
  • Beispiel 14. Das System von Beispiel 13, das ferner Folgendes umfasst: ein neuronales Netzwerk zum Erzeugen des Qualitätswerts als Reaktion darauf, basierend auf einem oder mehreren des MSE-Werts, SSIM-Werts, PVD-Werts und/oder BCF-Werts.
  • Beispiel 15. Das System von Beispiel 10, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  • Beispiel 16. Das System von Beispiel 10, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
  • Beispiel 17. Das System von Beispiel 16, wobei der ROI-Detektor ein neuronales Netzwerk umfasst, wobei das erste Bild als Eingabe verwendet wird und die Bereiche von Interesse als Ausgabe erzeugt werden.
  • Beispiel 18. Das System von Beispiel 10, wobei der Bereich von Interesse (ROI) -Detektor Bereiche von Interesse innerhalb eines dritten Bildes, das von einer zweiten physikalischen Kamera (PCAM) erzeugt wird, die an zweiten Koordinaten positioniert ist, erkennen soll; die virtuelle Kameraschaltung und/oder -logik ein viertes Bild, das an den zweiten Koordinaten positioniert ist, erzeugen soll; die Bildvergleichsschaltung und/oder -logik eine Pixel-zu-Pixel-Entsprechung zwischen dem dritten Bild und dem vierten Bild einrichten soll; und ein Bildqualitätsbeurteiler einen Qualitätswert für das vierte Bild durch Beurteilen des vierten Bildes im Hinblick auf das dritte Bild bestimmen soll.
  • Beispiel 19. Ein maschinenlesbares Medium, auf dem Programmcode gespeichert ist, der, wenn durch eine Maschine ausgeführt, die Maschine dazu veranlasst, die folgenden Operationen auszuführen: Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; Erzeugen eines zweiten Bildes von einer virtuellen Kamera (VCAM), die an den ersten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  • Beispiel 20. Das maschinenlesbare Medium von Beispiel 19, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild umfasst.
  • Beispiel 21. Das maschinenlesbare Medium von Beispiel 19, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild umfasst.
  • Beispiel 22. Das maschinenlesbare Medium von Beispiel 21, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild ferner das Ausführen einer Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts, das Ausführen einer Structural-Similarity (SSIM) - Beurteilung zum Erzeugen eines SSIM-Werts, das Ausführen einer Point-Cloud-Voxel-Density (PVD) -Beurteilung zum Erzeugen eines PVD-Werts und/oder das Ausführen einer Body-Shape-Contour-Fitness (BCF) - Beurteilung zum Erzeugen eines BCF-Werts umfasst.
  • Beispiel 23. Das maschinenlesbare Medium von Beispiel 22, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Implementieren eines neuronalen Netzwerks durch Verwenden eines oder mehrerer des MSE-Werts, SSIM-Werts, PVD-Werts und/oder BCF-Werts als Eingaben umfasst, wobei das neuronale Netzwerk als Reaktion darauf den Qualitätswert erzeugen soll.
  • Beispiel 24. Das maschinenlesbare Medium von Beispiel 19, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  • Beispiel 25. Das maschinenlesbare Medium von Beispiel 19, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
  • Beispiel 26. Das maschinenlesbare Medium von Beispiel 25, wobei die Objekterkennungsoperationen durch Verwenden von Gewichten durch ein neuronales Netzwerk ausgeführt werden, wobei das erste Bild als Eingabe verwendet wird und Bereiche von Interesse als Ausgabe erzeugt werden.
  • Beispiel 27. Das maschinenlesbare Medium von Beispiel 19, das ferner Programmcode umfasst, um die Maschine dazu zu veranlassen, die folgenden Operationen auszuführen: Erkennen von Bereichen von Interesse innerhalb eines dritten Bildes, das von einer zweiten PCAM erzeugt wird, die an zweiten Koordinaten positioniert ist; Erzeugen eines vierten Bildes von einer virtuellen Kamera (VCAM), die an den zweiten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem dritten Bild und dem vierten Bild; und Bestimmen eines Qualitätswerts für das vierte Bild durch Beurteilen des vierten Bildes im Hinblick auf das dritte Bild.
  • Ausführungsformen der Erfindung können verschiedene Schritte beinhalten, die oben beschrieben worden sind. Die Schritte können in maschinenausführbaren Anweisungen verkörpert sein, die dazu verwendet werden können, einen Mehrzweck- oder Spezialprozessor dazu zu veranlassen, die Schritte auszuführen. Alternativ können diese Schritte durch spezifische Hardwarekomponenten ausgeführt werden, die festverdrahtete Logik zum Ausführen der Schritte enthalten, oder durch jegliche Kombination von programmierten Computerkomponenten und kundenspezifischen Hardwarekomponenten.
  • Wie hierin beschrieben, können sich Anweisungen auf spezifische Hardwarekonfigurationen beziehen, wie zum Beispiel Application-Specific-Integrated-Circuits (ASIC), die dazu ausgelegt sind, bestimmte Operationen auszuführen, oder eine vorbestimmte Funktionalität oder Softwareanweisungen haben, die in Speicher gespeichert sind, der in einem nicht flüchtigen computerlesbaren Medium verkörpert ist. Somit können die in den Figuren gezeigten Techniken durch Verwenden von Code und Daten implementiert werden, die auf einem oder mehreren elektronischen Geräten (zum Beispiel einer Endstation, einem Netzwerkelement, usw.) gespeichert und ausgeführt werden. Solche elektronischen Geräte speichern und kommunizieren (intern und/oder mit anderen elektronischen Geräten über ein Netzwerk) Code und Daten durch Verwenden von maschinenlesbaren Computermedien, wie zum Beispiel nicht flüchtigen maschinenlesbaren Computer-Speicherungsmedien (zum Beispiel Magnetplatten; optische Platten; Random-Access-Memory; Read-Only-Memory; Flash-Speichergeräte, Phasenwechselspeicher) und flüchtigen maschinenlesbaren Computer-Kommunikationsmedien (zum Beispiel elektrische, optische, akustische oder andere Formen von verbreiteten Signalen - wie zum Beispiel Trägerwellen, Infrarotsignale, digitale Signale, usw.).
  • Zusätzlich beinhalten solche elektronischen Geräte typischerweise einen Satz von einem oder mehreren Prozessoren, die mit einer oder mehreren anderen Komponenten, wie zum Beispiel einem oder mehreren Speicherungsgeräten (nicht flüchtigen maschinenlesbaren Speicherungsmedien), Benutzereingabe/-Ausgabegeräten (zum Beispiel einer Tastatur, einem Touchscreen und/oder einem Display) und Netzwerkverbindungen, gekoppelt sind. Das Koppeln des Satzes von Prozessoren und anderen Komponenten erfolgt typischerweise durch einen oder mehrere Busse und Brücken (auch bezeichnet als Bussteuerungen). Die Speicherungsgeräte und Signale, die den Netzwerkverkehr tragen, repräsentieren ein oder mehrere maschinenlesbare Speicherungsmedien und maschinenlesbare Kommunikationsmedien. Somit speichert das Speicherungsgerät eines gegebenen elektronischen Geräts typischerweise Code und/oder Daten zur Ausführung auf dem Satz eines oder mehrerer Prozessoren dieses elektronischen Geräts. Natürlich können ein oder mehrere Teile einer Ausführungsform der Erfindung durch Verwenden unterschiedlicher Kombinationen von Software, Firmware und/oder Hardware implementiert werden. Über diese detaillierte Beschreibung hinweg wurden zu Erklärungszwecken zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Es wird jedoch für einen Fachmann erkennbar sein, dass die Erfindung ohne einige dieser spezifischen Details praktiziert werden kann. In bestimmten Fällen wurden wohl bekannte Strukturen und Funktionen nicht aufwendig detailliert beschrieben, um zu vermeiden, dass der Gegenstand der vorliegenden Erfindung verschleiert wird. Dementsprechend sollten der Umfang und Geist der Erfindung hinsichtlich der folgenden Ansprüche beurteilt werden.

Claims (25)

  1. Verfahren, das Folgendes umfasst: Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; Erzeugen eines zweiten Bildes von einer virtuellen Kamera (VCAM), die an den ersten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  2. Verfahren nach Anspruch 1, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild umfasst.
  4. Verfahren nach Anspruch 3, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild ferner das Ausführen einer Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts, das Ausführen einer Structural-Similarity (SSIM) -Beurteilung zum Erzeugen eines SSIM-Werts, das Ausführen einer Point-Cloud-Voxel-Density (PVD) -Beurteilung zum Erzeugen eines PVD-Werts und/oder das Ausführen einer Body-Shape-Contour-Fitness (BCF) -Beurteilung zum Erzeugen eines BCF-Werts umfasst.
  5. Verfahren nach Anspruch 4, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Implementieren eines neuronalen Netzwerks durch Verwenden eines oder mehrerer des MSE-Werts, SSIM-Werts, PVD-Werts und / oder BCF-Werts als Eingaben umfasst, wobei das neuronale Netzwerk als Reaktion darauf den Qualitätswert erzeugen soll.
  6. Verfahren nach Anspruch 1 oder 5, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  7. Verfahren nach Anspruch 1 oder 6, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
  8. Verfahren nach Anspruch 7, wobei die Objekterkennungsoperationen durch Verwenden von Gewichten durch ein neuronales Netzwerk ausgeführt werden, wobei das erste Bild als Eingabe verwendet wird und Bereiche von Interesse als Ausgabe erzeugt werden.
  9. Verfahren nach Anspruch 1 oder 8, das ferner Folgendes umfasst: Erkennen von Bereichen von Interesse innerhalb eines dritten Bildes, das von einer zweiten physikalischen PCAM erzeugt wird, die an zweiten Koordinaten positioniert ist; Erzeugen eines vierten Bildes von einer virtuellen Kamera (VCAM), die an den zweiten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem dritten Bild und dem vierten Bild; und Bestimmen eines Qualitätswerts für das vierte Bild durch Beurteilen des vierten Bildes im Hinblick auf das dritte Bild.
  10. System, das Folgendes umfasst: einen Bereich von Interesse (ROI) -Detektor zum Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; virtuelle Kameraschaltung und/oder -logik zum Erzeugen eines zweiten Bildes, das an den ersten Koordinaten positioniert ist; Bildvergleichsschaltung und/oder -logik zum Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; einen Bildqualitätsbeurteiler zum Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  11. System nach Anspruch 10, wobei der Bildqualitätsbeurteiler das zweite Bild im Hinblick auf das erste Bild durch Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild beurteilen soll.
  12. System nach Anspruch 10 oder 11, wobei der Bildqualitätsbeurteiler das zweite Bild im Hinblick auf das erste Bild durch Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild beurteilen soll.
  13. System nach Anspruch 12, wobei der Bildqualitätsbeurteiler eine Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts ausführen soll, eine Structural-Similarity (SSIM) -Beurteilung zum Erzeugen eines SSIM-Werts ausführen soll, eine Point-Cloud-Voxel-Density (PVD) - Beurteilung zum Erzeugen eines PVD-Werts ausführen soll und/oder eine Body-Shape-Contour-Fitness (BCF) -Beurteilung zum Erzeugen eines BCF-Werts ausführen soll.
  14. System nach Anspruch 13, das ferner Folgendes umfasst: ein neuronales Netzwerk zum Erzeugen des Qualitätswerts als Reaktion darauf, basierend auf einem oder mehreren des MSE-Werts, SSIM-Werts, PVD-Werts und/oder BCF-Werts.
  15. System nach Anspruch 10 oder 14, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  16. System nach Anspruch 10 oder 15, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
  17. System nach Anspruch 16, wobei der ROI-Detektor ein neuronales Netzwerk umfasst, wobei das erste Bild als Eingabe verwendet wird und die Bereiche von Interesse als Ausgabe erzeugt werden.
  18. System nach Anspruch 10 oder 17, wobei der Bereich von Interesse (ROI) -Detektor Bereiche von Interesse innerhalb eines dritten Bildes, das von einer zweiten physikalischen Kamera (PCAM) erzeugt wird, die an zweiten Koordinaten positioniert ist, erkennen soll; die virtuelle Kameraschaltung und/oder -logik ein viertes Bild, das an den zweiten Koordinaten positioniert ist, erzeugen soll; die Bildvergleichsschaltung und/oder -logik eine Pixel-zu-Pixel-Entsprechung zwischen dem dritten Bild und dem vierten Bild einrichten soll; und ein Bildqualitätsbeurteiler einen Qualitätswert für das vierte Bild durch Beurteilen des vierten Bildes im Hinblick auf das dritte Bild bestimmen soll.
  19. Maschinenlesbares Medium, auf dem Programmcode gespeichert ist, der, wenn durch eine Maschine ausgeführt, die Maschine dazu veranlasst, die folgenden Operationen auszuführen: Erkennen von Bereichen von Interesse innerhalb eines ersten Bildes, das von einer ersten physikalischen Kamera (PCAM) erzeugt wird, die an ersten Koordinaten positioniert ist; Erzeugen eines zweiten Bildes von einer virtuellen Kamera (VCAM), die an den ersten Koordinaten positioniert ist; Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild; Bestimmen eines Qualitätswerts für das zweite Bild durch Beurteilen des zweiten Bildes im Hinblick auf das erste Bild.
  20. Maschinenlesbares Medium nach Anspruch 19, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Vergleichen eines oder mehrerer Merkmale in dem ersten Bild mit entsprechenden Merkmalen in dem zweiten Bild umfasst.
  21. Maschinenlesbares Medium nach Anspruch 19 oder 20, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Bestimmen von Unterschieden in Pixelintensitäten und/oder Konturen zwischen dem ersten und dem zweiten Bild umfasst.
  22. Maschinenlesbares Medium nach Anspruch 21, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild ferner das Ausführen einer Mean-Squared-Error (MSE) -Beurteilung zum Erzeugen eines MSE-Werts, das Ausführen einer Structural-Similarity (SSIM) -Beurteilung zum Erzeugen eines SSIM-Werts, das Ausführen einer Point-Cloud-Voxel-Density (PVD) - Beurteilung zum Erzeugen eines PVD-Werts und/oder das Ausführen einer Body-Shape-Contour-Fitness (BCF) -Beurteilung zum Erzeugen eines BCF-Werts umfasst.
  23. Maschinenlesbares Medium nach Anspruch 22, wobei das Beurteilen des zweiten Bildes im Hinblick auf das erste Bild das Implementieren eines neuronalen Netzwerks durch Verwenden eines oder mehrerer des MSE-Werts, SSIM-Werts, PVD-Werts und/oder BCF-Werts als Eingaben umfasst, wobei das neuronale Netzwerk als Reaktion darauf den Qualitätswert erzeugen soll.
  24. Maschinenlesbares Medium nach Anspruch 19 oder 23, wobei das Einrichten einer Pixel-zu-Pixel-Entsprechung zwischen dem ersten Bild und dem zweiten Bild das Extrahieren stabiler Bildmerkmale innerhalb von Begrenzungsrahmen, das Einrichten einer Entsprechung zwischen dem ersten Bild und dem zweiten Bild durch Verwenden von Ankern umfasst.
  25. Maschinenlesbares Medium nach Anspruch 19 oder 24, wobei das Erkennen von Bereichen von Interesse das Ausführen von Objekterkennungsoperationen durch Verwenden von Gewichten umfasst, um Objekte innerhalb des ersten Bildes zu erkennen.
DE102020124815.6A 2019-09-27 2020-09-23 System und vorrichtung für benutzergesteuerte virtuelle kamera für volumetrisches video Pending DE102020124815A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/585,445 2019-09-27
US16/585,445 US11748870B2 (en) 2019-09-27 2019-09-27 Video quality measurement for virtual cameras in volumetric immersive media

Publications (1)

Publication Number Publication Date
DE102020124815A1 true DE102020124815A1 (de) 2021-04-01

Family

ID=74872829

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020124815.6A Pending DE102020124815A1 (de) 2019-09-27 2020-09-23 System und vorrichtung für benutzergesteuerte virtuelle kamera für volumetrisches video

Country Status (3)

Country Link
US (1) US11748870B2 (de)
CN (1) CN112581627A (de)
DE (1) DE102020124815A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11190817B2 (en) * 2020-01-23 2021-11-30 At&T Intellectual Property I, L.P. Method, systems and devices for providing adjusted video content according to viewing distance
US11277626B2 (en) 2020-02-21 2022-03-15 Alibaba Group Holding Limited Region of interest quality controllable video coding techniques
US11388423B2 (en) 2020-03-23 2022-07-12 Alibaba Group Holding Limited Region-of-interest based video encoding
US11847746B2 (en) * 2020-12-03 2023-12-19 Electronics And Telecommunications Research Institute Server and method for generating best view spots
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
US11849220B2 (en) 2021-04-14 2023-12-19 Microsoft Technology Licensing, Llc Systems and methods for generating depth information from low-resolution images
US11831931B2 (en) * 2021-04-14 2023-11-28 Microsoft Technology Licensing, Llc Systems and methods for generating high-resolution video or animated surface meshes from low-resolution images
US11405657B1 (en) * 2021-05-04 2022-08-02 International Business Machines Corporation Remote virtual reality viewing of an event using crowdsourcing
WO2022250388A1 (ko) * 2021-05-25 2022-12-01 삼성전자 주식회사 비디오 품질을 평가하는 전자 장치 및 그 동작 방법
US20230074950A1 (en) * 2021-08-24 2023-03-09 Nvidia Corporation Object characterization using one or more neural networks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9064316B2 (en) * 2012-06-28 2015-06-23 Lexmark International, Inc. Methods of content-based image identification
JP7046567B2 (ja) * 2017-11-13 2022-04-04 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
EP3527137A1 (de) * 2018-02-14 2019-08-21 Koninklijke Philips N.V. Vorrichtung zur iterativen materialzerlegung von multispektraldaten
US11836597B2 (en) * 2018-08-09 2023-12-05 Nvidia Corporation Detecting visual artifacts in image sequences using a neural network model
KR102500760B1 (ko) * 2018-10-23 2023-02-16 삼성전자주식회사 이미지 획득 장치 및 그의 제어 방법

Also Published As

Publication number Publication date
US11748870B2 (en) 2023-09-05
US20210097667A1 (en) 2021-04-01
CN112581627A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
DE102020124815A1 (de) System und vorrichtung für benutzergesteuerte virtuelle kamera für volumetrisches video
US11653065B2 (en) Content based stream splitting of video data
JP6599435B2 (ja) イベント空間で生じるイベントの3次元再構成における3次元再構成システムによる周囲の処理を制限するためのシステムおよび方法
US20210099693A1 (en) Positional zero latency
US10362290B2 (en) Methods and apparatus for processing content based on viewing information and/or communicating content
US9774896B2 (en) Network synchronized camera settings
DE102015100911B4 (de) Verbesserte Kommunikation zwischen entfernten Teilnehmern/Teilnehmerinnen mittels erweiterter und virtueller Realität
DE102020125612A1 (de) Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video
US20120120201A1 (en) Method of integrating ad hoc camera networks in interactive mesh systems
US20200388068A1 (en) System and apparatus for user controlled virtual camera for volumetric video
CN107529021B (zh) 隧道型全景视频采集、分发、定位跟踪系统及其方法
DE112017006836T5 (de) Informationsverarbeitungsgerät, informationsverarbeitungsverfahren und programm
CN106713942A (zh) 视频处理方法和装置
DE112019000271T5 (de) Verfahren und vorrichtung zur verarbeitung und verteilung von live-virtual-reality-inhalten
CN112446939A (zh) 三维模型动态渲染方法、装置、电子设备及存储介质
Mase et al. Socially assisted multi-view video viewer
US20170225077A1 (en) Special video generation system for game play situation
US20220165308A1 (en) Point of view video processing and curation platform
US11622099B2 (en) Information-processing apparatus, method of processing information, and program
KR20190031220A (ko) Vr 콘텐츠 제공 시스템 및 방법
CN113542721B (zh) 深度图处理方法、视频重建方法及相关装置
US20180075634A1 (en) System and Method of Generating an Interactive Data Layer on Video Content
US20150375109A1 (en) Method of Integrating Ad Hoc Camera Networks in Interactive Mesh Systems
WO2023157005A1 (en) An augmented reality interface for watching live sport games
DE112023000339T5 (de) Implementierungen und verfahren zum verwenden von mobilgeräten zum kommunizieren mit einem halbleiter eines neuronalen netzes