-
Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Videostreamen von wenigstens einer Kamera, die auf einem Fahrzeug montiert ist, zu einem Virtuelle-Realität-System, das entfernt von dem Fahrzeug befindlich ist, wobei Videodaten, die eine Umgebung des Fahrzeugs darstellen, durch die wenigstens eine Kamera erzeugt werden, und wenigstens ein Videostream abhängig von den Videodaten erzeugt wird, ein Texturabbild abhängig von dem wenigstens einen Videostream erzeugt wird, und ein Bild gerendert wird, indem das Texturabbild auf eine virtuelle Oberfläche abgebildet wird, und das gerenderte Bild mittels eines Anzeigegeräts des Virtuelle-Realität-Systems angezeigt wird. Die Erfindung bezieht sich ferner auf eine entsprechende Anordnung zum Videostreamen und ein Computerprogrammprodukt.
-
Fahrzeugkameras, die an verschiedenen Positionen eines Kraftfahrzeugs montiert sind, können zu einem entfernten Virtuelle-Realität-System, beispielsweise für Telekommunikationsanwendungen, gestreamt werden, wobei der Benutzer des Virtuelle-Realität-Systems mit einem Fahrgast des Fahrzeugs kommunizieren kann, als ob er im Fahrzeug anwesend wäre. Ferner kann auch für Teleoperationszwecke im Zusammenhang mit automatisiertem Fahren ein solches Streamen die Interpretation der Situation für den Teleoperator erleichtern. Wenn jedoch die Bewegung in der virtuellen Welt von der tatsächlichen Bewegung des Benutzers des Virtuelle-Realität-Systems verschieden ist, kann dies Bewegungskrankheit verursachen.
-
Bekannte Methoden, um den Grad der Bewegungskrankheit zu verringern, versuchen, die virtuelle Bewegung in die durch den Benutzer erlebte reale Welt zu induzieren. Dazu kann beispielsweise eine Brille, die den Benutzer über die Bewegung der Streaming-Kameras informiert, verwendet werden, oder es kann ein Stuhl, der sich gemäß der Bewegung der Kameras bewegt, verwendet werden. Diese Methoden haben den Nachteil, dass sie zusätzliche Hardware auf der Seite des Virtuelle-Realität-Systems erfordern.
-
Daher ist es eine Aufgabe der vorliegenden Erfindung, ein verbessertes Konzept für das Videostreamen von wenigstens einer Kamera, die an einem Fahrzeug montiert ist, zu einem Virtuelle-Realität-System, das entfernt von dem Fahrzeug befindlich ist, bereitzustellen, das die Bewegungskrankheit für den Benutzer des Virtuelle-Realität-Systems verringert, ohne zusätzliche Hardware des Virtuelle-Realität-Systems zu erfordern.
-
Diese Aufgabe wird durch den jeweiligen Gegenstand der unabhängigen Ansprüche erreicht. Weitere Implementierungen und bevorzugte Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
-
Das verbesserte Konzept basiert auf der Idee, die Bewegung der wenigstens einen Kamera in einem der Verarbeitungsschritte vom Erzeugen eines Videostreams bis zum Rendern eines Bildes unter Berücksichtigung von Beschleunigungssensordaten des Fahrzeugs zu kompensieren.
-
Gemäß dem verbesserten Konzept wird ein Verfahren zum Videostreamen von wenigstens einer Kamera, die an einem Fahrzeug montiert ist, zu einem Virtuelle-Realität-System, das entfernt von dem Fahrzeug befindlich ist, bereitgestellt. Dabei werden Videodaten, die eine Umgebung des Fahrzeugs darstellen, durch die wenigstens eine Kamera erzeugt und wenigstens ein Videostream wird abhängig von den Videodaten erzeugt. Ein Texturabbild wird abhängig von dem wenigstens einen Videostream erzeugt und ein Bild wird gerendert, indem das Texturabbild auf eine virtuelle Oberfläche abgebildet wird. Das gerenderte Bild wird einem Benutzer des Virtuelle-Realität-Systems mittels eines Anzeigegeräts des Virtuelle-Realität-Systems angezeigt. Sensordaten werden durch wenigstens einen Beschleunigungssensor des Fahrzeugs abhängig von einer Bewegung des Fahrzeugs erzeugt. Der wenigstens eine Videostream wird abhängig von den Sensordaten erzeugt oder das Texturabbild wird abhängig von den Sensordaten erzeugt oder das Texturabbild wird abhängig von den Sensordaten auf die virtuelle Oberfläche abgebildet.
-
Die Verfahrensschritte des Erzeugens des wenigstens einen Videostreams, des Erzeugens des Texturabbilds und des Abbildens des Texturabbilds auf die virtuelle Oberfläche zum Rendern des Bildes können durch wenigstens eine Recheneinheit ausgeführt werden. Die wenigstens eine Recheneinheit kann eine Fahrzeugrecheneinheit des Fahrzeugs, die sich in dem Fahrzeug befindet, eine externe Serverrecheneinheit, die entfernt von dem Fahrzeug und dem Virtuelle-Realität-System befindlich ist, und/oder eine Recheneinheit des Virtuelle-Realität-Systems beinhalten. Abhängig von der Implementierung des Verfahrens können die Verfahrensschritte durch eine der wenigstens einen Recheneinheit ausgeführt werden oder die verschiedenen Verfahrensschritte können unter zwei oder allen drei der wenigstens einen Recheneinheit aufgeteilt werden. Im Folgenden wird die externe Serverrecheneinheit auch als Cloud bezeichnet.
-
Der wenigstens eine Videostream kann beispielsweise durch die Fahrzeugrecheneinheit erzeugt werden und zum Virtuelle-Realität-System, insbesondere zur Recheneinheit des Virtuelle-Realität-Systems, direkt oder über das externe Servercomputersystem übertragen werden.
-
Insbesondere kann der wenigstens eine Videostream durch die Fahrzeugrecheneinheit des Fahrzeugs erzeugt werden und von der Fahrzeugrecheneinheit zur externen Recheneinheit übertragen werden.
-
In einigen Implementierungen wird das Texturabbild durch die externe Recheneinheit erzeugt und auf die virtuelle Oberfläche abgebildet und das gerenderte Bild wird von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen.
-
In anderen Implementierungen wird der Videostream von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems weitergeleitet und das Texturabbild wird durch die Recheneinheit des Virtuelle-Realität-Systems erzeugt und auf die virtuelle Oberfläche abgebildet.
-
In noch anderen Implementierungen wird das Texturabbild durch die externe Serverrecheneinheit erzeugt und das Texturabbild wird von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen und das Texturabbild wird durch die Recheneinheit des Virtuelle-Realität-Systems auf die virtuelle Oberfläche abgebildet.
-
In weiteren Implementierungen können die Videodaten durch wenigstens einen Zwischenvideostream von der Fahrzeugrecheneinheit zur externen Serverrecheneinheit oder direkt zur Recheneinheit des Virtuelle-Realität-Systems gestreamt werden. Dann kann der wenigstens eine Videostream beispielsweise durch die externe Serverrecheneinheit oder die Recheneinheit des Virtuelle-Realität-Systems, insbesondere abhängig von den Sensordaten, erzeugt werden.
-
Der wenigstens eine Beschleunigungssensor, der auch als G-Sensor bezeichnet werden kann, ist dazu eingerichtet, wenigstens ein Sensorsignal zu erzeugen, das wenigstens einen Wert einer Beschleunigung des Fahrzeugs darstellt. Die Beschleunigung des Fahrzeugs kann eine lineare Beschleunigung oder eine Winkelbeschleunigung beinhalten. Die Sensordaten entsprechen den Sensorsignalen oder werden von den Sensorsignalen, beispielsweise durch die Fahrzeugrecheneinheit, abgeleitet.
-
Die wenigstens eine Kamera ist starr mit dem Kraftfahrzeug verbunden. Folglich überträgt sich jede Bewegung des Kraftfahrzeugs direkt in eine entsprechende Bewegung von jeder der wenigstens einen Kamera. Insbesondere überträgt sich jede Drehbewegung des Fahrzeugs mit Bezug auf die Umgebung direkt in eine entsprechende Drehbewegung der wenigstens einen Kamera. Die Sensordaten können diese Bewegung der wenigstens einen Kamera quantifizieren oder können verwendet werden, um diese zu quantifizieren.
-
Die Videodaten können beispielsweise jeweilige Kamerabilder von jeder der wenigstens einen Kamera für jedes von einer Reihe von aufeinander folgenden Einzelbildern beinhalten. Falls die wenigstens eine Kamera zwei oder mehr Kameras beinhaltet, können die Einzelbilder unter den zwei oder mehr Kameras synchronisiert werden. Die Erzeugung des wenigstens einen Videostreams, des Texturabbilds oder die Abbildung des Texturabbilds auf die virtuelle Oberfläche kann abhängig von den Sensordaten für jedes Einzelbild ausgeführt werden. Insbesondere können die Sensordaten mit einer Rate aktualisiert werden, die gleich oder größer als eine Einzelbildrate der wenigstens einen Kamera sein kann.
-
Durch Berücksichtigen der Sensordaten zum Erzeugen des wenigstens einen Videostreams, zum Erzeugen des Texturabbilds oder zum Rendern des Bildes kann wenigstens ein Teil der Bewegung des Fahrzeugs und daher der wenigstens einen Kamera kompensiert werden. Folglich enthält das durch das Anzeigegerät für den Benutzer angezeigte Video nur ein verringertes Ausmaß an Bewegung des Fahrzeugs, insbesondere nur einen gewünschten Teil der Bewegung des Fahrzeugs. Dieser gewünschte Teil kann beispielsweise einer Änderung des Gierwinkels des Fahrzeugs entsprechen, während Nick- und Rollwinkeländerungen des Fahrzeugs im gerenderten Videostream durch die Kompensation abhängig von den Sensordaten nicht enthalten sein können, wie beschrieben.
-
Folglich wird das Risiko, dass der Benutzer bewegungskrank wird, da die Bewegung in der virtuellen Realität mit der Bewegung des Benutzers in der realen Welt nicht übereinstimmt, verringert, ohne dass, abgesehen von einer regulären Virtuelle-Realität-Ausrüstung, zusätzliche Hardware-Komponenten wie zum Beispiel spezielle Sitze oder eine Brille erforderlich sind.
-
Die wenigstens eine Kamera kann beispielsweise eine Rundumkamera oder eine Vielzahl von Kameras, das heißt zwei oder mehr Kameras, beinhalten. Im letzteren Fall können die Kameras beispielsweise als nicht-gnomonische Kameras, wie zum Beispiel Fischaugenkameras, gestaltet sein, um ein großes Gesamtsichtfeld der wenigstens einen Kamera zu erreichen. Die wenigstens eine Kamera kann beispielsweise eine Frontkamera, eine Heckkamera, eine linke Kamera und eine rechte Kamera, die auf verschiedenen Seiten des Fahrzeugs montiert sind, beinhalten. In dieser Weise kann insbesondere unter Verwendung von nicht-gnomonischen Kameras oder Fischaugenkameras mit einem besonders großen Sichtfeld ein Gesamtsichtfeld der wenigstens einen Kamera von wenigstens ungefähr 360° in der horizontalen Ebene und 360° in einer entsprechenden vertikalen Ebene erreicht werden. In diesem Zusammenhang kann man auch auf ein sphärisches oder ungefähr sphärisches Gesamtsichtfeld der wenigstens einen Kamera oder ein 360°-Sichtfeld der wenigstens einen Kamera sprechen. In dieser Weise kann ein hoher Immersionsgrad für den Benutzer erreicht werden.
-
Gemäß mehreren Implementierungen des Verfahrens werden der Nickwinkel und der Rollwinkel eines Fahrzeugkoordinatensystems des Fahrzeugs mit Bezug auf ein Referenz-Fahrzeugkoordinatensystem, insbesondere durch die wenigstens eine Recheneinheit, beispielsweise durch die Fahrzeugrecheneinheit, abhängig von den Sensordaten berechnet. Ein Effekt der Bewegung des Fahrzeugs auf die Videodaten wird wenigstens teilweise durch Erzeugen des wenigstens einen Videostreams abhängig von dem Nickwinkel und dem Rollwinkel oder durch Erzeugen des Texturabbilds abhängig von dem Nickwinkel und dem Rollwinkel oder durch Abbilden des Texturabbilds auf die virtuelle Oberfläche abhängig von dem Nickwinkel und dem Rollwinkel kompensiert.
-
Im Allgemeinen kann das Fahrzeugkoordinatensystem irgendein dreidimensionales kartesisches Koordinatensystem sein, das mit dem Fahrzeug, insbesondere mit der Fahrzeugkarosserie, starr verbunden ist und daher mit jeder der wenigstens einen Kamera starr verbunden ist. Das Fahrzeugkoordinatensystem kann beispielsweise eine x-Achse, die zur einer Längsachse des Fahrzeugs parallel ist, eine y-Achse, die zur Querachse des Fahrzeugs parallel ist, und eine z-Achse, die zu einer Hochachse des Fahrzeugs parallel ist, aufweisen.
-
Das Referenz-Fahrzeugkoordinatensystem kann als Fahrzeugkoordinatensystem zu einer Referenzzeit definiert werden. Folglich sind zur Referenzzeit der Nickwinkel, der Rollwinkel und ein Gierwinkel des Fahrzeugkoordinatensystems mit Bezug auf das Referenz-Fahrzeugkoordinatensystem null. Zu jeder anderen Zeit ermöglichen es die Sensordaten, den Nickwinkel, den Rollwinkel und den Gierwinkel zu bestimmen.
-
Zum wenigstens teilweisen Kompensieren des Effekts der Bewegung auf die Videodaten kann die zeitliche Änderung des Nickwinkels und des Gierwinkels kompensiert werden. Dagegen kann die zeitliche Änderung des Gierwinkels beispielsweise nicht kompensiert werden, um zu ermöglichen, dass der Benutzer der Richtung der Fahrzeugfahrt folgt.
-
In einigen Implementierungen enthält der wenigstens eine Videostream exakt einen Videostream, der auch als kombinierter Videostream bezeichnet wird. Mit anderen Worten, der kombinierte Videostream kann in jeweiligen Ausführungsformen beispielsweise abhängig von den Sensordaten erzeugt werden. Andererseits kann in einigen Implementierungen abhängig von den Sensordaten für jede der Kameras ein individueller Videostream des wenigstens einen Videostreams erzeugt werden. Dann können diese individuellen Videostreams kombiniert werden, um einen kombinierten Videostream zu erzeugen, wobei die Kombination beispielsweise unabhängig von den Sensordaten ausgeführt wird.
-
Zum Erzeugen des Texturabbilds kann die wenigstens eine Recheneinheit jedes Pixel eines Einzelbildes des kombinierten Videostreams auf eine Ebene abbilden. Die Abbildung kann beispielsweise abhängig von einer vordefinierten Nachschlagetabelle ausgeführt werden, die in der wenigstens einen Recheneinheit gespeichert ist.
-
In Implementierungen, in denen der kombinierte Videostream unabhängig von den Sensordaten erzeugt wurde, kann die Nachschlagetabelle beispielsweise durch die wenigstens eine Recheneinheit abhängig von den Sensordaten, insbesondere abhängig von dem Nickwinkel und dem Rollwinkel, aktualisiert werden, um das Texturabbild abhängig von den Sensordaten zu erzeugen.
-
Zum Rendern des Bildes abhängig von dem Texturabbild werden die Bildpunkte des Texturabbilds auf die virtuelle Oberfläche abgebildet, wobei eine virtuelle Fahrzeugblickrichtung mit Bezug auf die virtuelle Oberfläche zum Nachahmen einer perspektivischen Blickrichtung des Benutzers mit Bezug auf die virtuelle Oberfläche berücksichtigt wird, um ein immersives Erlebnis für den Benutzer zu erzeugen, als ob er im Fahrzeug anwesend wäre.
-
Um das Bild abhängig von den Sensordaten zu rendern oder, mit anderen Worten, das Texturabbild auf die virtuelle Oberfläche abhängig von den Sensordaten abzubilden, kann die wenigstens eine Recheneinheit eine Drehposition der virtuellen Oberfläche abhängig von den Sensordaten, insbesondere abhängig von dem Nickwinkel und dem Gierwinkel, anpassen oder die wenigstens eine Recheneinheit kann die virtuelle Kamerablickrichtung abhängig von den Sensordaten, insbesondere abhängig von dem Nickwinkel und dem Gierwinkel, dementsprechend drehen.
-
Gemäß mehreren Implementierungen weist die wenigstens eine Kamera zwei oder mehr Kameras mit entsprechenden verschiedenen Sichtfeldern auf. Ein jeweiliger Teil der Videodaten wird durch jede der zwei oder mehr Kameras erzeugt.
-
Gemäß mehreren Implementierungen, insbesondere Implementierungen, in denen der wenigstens eine Videostream abhängig von den Sensordaten erzeugt wird, werden die jeweiligen Teile der Videodaten kombiniert und abhängig von den Sensordaten auf eine Ebene abgebildet.
-
In solchen Implementierungen könnte der wenigstens eine Videostream aus nur einem Videostream, nämlich dem kombinierten Videostream, bestehen. Der kombinierte Videostream kann abhängig von den Videodaten erzeugt werden, die auf die Ebene abgebildet werden.
-
Insbesondere kann die Kombination der Teile der Videodaten durch die Fahrzeugrecheneinheit ausgeführt werden.
-
Gemäß mehreren Implementierungen werden die Kombination und Abbildung der Teile der Videodaten auf die Ebene gemäß einer äquirektangulären Projektion abhängig von den Sensordaten ausgeführt.
-
Gemäß mehreren Implementierungen, insbesondere Implementierungen, in denen das Texturabbild abhängig von den Sensordaten erzeugt wird oder das Texturabbild abhängig von den Sensordaten auf die virtuelle Oberfläche abgebildet wird, wird ein Datenstrom abhängig von den Sensordaten durch die Fahrzeugrecheneinheit erzeugt. Das Texturabbild wird abhängig von dem Datenstrom erzeugt oder das Texturabbild wird abhängig von dem Datenstrom auf die virtuelle Oberfläche abgebildet.
-
Der Datenstrom kann beispielsweise gemäß einem Datenkanal übertragen werden, der von dem Kanal oder von den Kanälen, um den wenigstens einen Videostream zu übertragen, separat ist.
-
Der Datenstrom kann beispielsweise von der Fahrzeugrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen werden, das dann das Texturabbild abhängig von dem Datenstrom erzeugen kann und dann das Texturabbild auf die virtuelle Oberfläche abbilden kann. Alternativ kann die Recheneinheit des Virtuelle-Realität-Systems zuerst das Texturabbild unabhängig von dem Datenstrom erzeugen und dann das Texturabbild abhängig von dem Datenstrom auf die virtuelle Oberfläche abbilden.
-
In anderen Implementierungen wird der Datenstrom von der Fahrzeugrecheneinheit zur Cloud übertragen und die Cloud erzeugt das Texturabbild abhängig von dem Datenstrom und bildet dann das Texturabbild auf die virtuelle Oberfläche ab oder erzeugt zuerst das Texturabbild unabhängig von dem Datenstrom und bildet dann das Texturabbild abhängig von dem Datenstrom auf die virtuelle Oberfläche ab.
-
In weiteren Implementierungen wird der Datenstrom von der Fahrzeugrecheneinheit zur Cloud übertragen und die Cloud erzeugt das Texturabbild abhängig von dem Datenstrom und überträgt dann das Texturabbild zur Recheneinheit des Virtuelle-Realität-Systems und das Virtuelle-Realität-System bildet das Texturabbild auf die virtuelle Oberfläche ab. Alternativ kann die Cloud das Texturabbild unabhängig von dem Datenstrom erzeugen und überträgt das Texturabbild zur Recheneinheit des Virtuelle-Realität-Systems und das Virtuelle-Realität-System bildet das Texturabbild abhängig von dem Datenstrom auf die virtuelle Oberfläche ab.
-
Gemäß mehreren Implementierungen, insbesondere Implementierungen, in denen das Texturabbild abhängig von den Sensordaten erzeugt wird, wird eine Nachschlagetabelle, die Videobildpixel jeweiligen Positionen auf dem Texturabbild zuweist, abhängig von dem Datenstrom aktualisiert und das Texturabbild wird abhängig von der aktualisierten Nachschlagetabelle erzeugt.
-
Gemäß mehreren Implementierungen, insbesondere Implementierungen, in denen das Texturabbild abhängig von den Sensordaten auf die virtuelle Oberfläche abgebildet wird, wird eine initiale Renderoberfläche abhängig von dem Datenstrom gedreht und die virtuelle Oberfläche wird durch die gedrehte initiale Renderoberfläche gegeben.
-
Gemäß mehreren Implementierungen, insbesondere Implementierungen, in denen das Texturabbild abhängig von den Sensordaten auf die virtuelle Oberfläche abgebildet wird, wird eine Render-Kamerablickrichtung abhängig von dem Datenstrom gedreht und das Texturabbild wird gemäß der gedrehten Render-Kamerablickrichtung auf die virtuelle Oberfläche abgebildet.
-
Gemäß mehreren Implementierungen werden wenigstens zwei Zwischenvideostreams abhängig von den jeweiligen Teilen der Videodaten durch die Fahrzeugrecheneinheit des Fahrzeugs erzeugt und die wenigstens zwei Zwischenvideostreams werden von der Fahrzeugrecheneinheit zur externen Serverrecheneinheit übertragen.
-
Gemäß mehreren Implementierungen werden die wenigstens zwei Zwischenvideostreams durch die externe Serverrecheneinheit kombiniert und auf die Ebene abgebildet, um einen kombinierten Videostream zu erzeugen. Das Texturabbild wird abhängig von dem kombinierten Videostream erzeugt und auf die virtuelle Oberfläche abgebildet. Insbesondere besteht in diesem Fall der wenigstens eine Videostream aus dem kombinierten Videostream.
-
Gemäß mehreren Implementierungen wird der kombinierte Videostream von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen und das Texturabbild wird durch die Recheneinheit des Virtuelle-Realität-Systems erzeugt und auf die virtuelle Oberfläche abgebildet.
-
In alternativen Implementierungen wird das Texturabbild durch die externe Serverrecheneinheit erzeugt und von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen und das Texturabbild wird durch die Recheneinheit des Virtuelle-Realität-Systems auf die virtuelle Oberfläche abgebildet.
-
In weiteren Implementierungen wird das Texturabbild durch die externe Serverrecheneinheit erzeugt und auf die virtuelle Oberfläche abgebildet und das gerenderte Bild wird von der externen Serverrecheneinheit zur Recheneinheit des Virtuelle-Realität-Systems übertragen.
-
Gemäß dem verbesserten Konzept wird auch eine Anordnung zum Videostreamen bereitgestellt. Die Anordnung zum Videostreamen weist wenigstens eine Kamera auf, die an einem Fahrzeug montierbar ist, und die wenigstens eine Kamera ist dazu eingerichtet, wenn sie am Fahrzeug montiert ist, Videodaten zu erzeugen, die eine Umgebung des Fahrzeugs darstellen. Die Anordnung zum Videostreamen weist wenigstens eine Recheneinheit auf, die dazu eingerichtet ist, wenigstens einen Videostream abhängig von den Videodaten zu erzeugen, ein Texturabbild abhängig von dem wenigstens einen Videostream zu erzeugen und ein Bild zu rendern, indem sie das Texturabbild auf eine virtuelle Oberfläche abbildet. Die Anordnung zum Videostreamen weist auch ein Anzeigegerät für ein Virtuelle-Realität-System auf, das dazu eingerichtet ist, das gerenderte Bild für einen Benutzer des Virtuelle-Realität-Systems anzuzeigen. Die Anordnung zum Videostreamen weist ferner wenigstens einen Beschleunigungssensor für das Fahrzeug auf, der dazu eingerichtet ist, Sensordaten abhängig von einer Bewegung des Fahrzeugs zu erzeugen, wenn er am Fahrzeug montiert ist. Die wenigstens eine Recheneinheit ist dazu eingerichtet, den wenigstens einen Videostream abhängig von den Sensordaten zu erzeugen oder das Texturabbild abhängig von den Sensordaten zu erzeugen oder das Texturabbild abhängig von den Sensordaten auf die virtuelle Oberfläche abzubilden.
-
Weitere Implementierungen der Anordnung zum Videostreamen gemäß dem verbesserten Konzept werden leicht von den verschiedenen Implementierungen des Verfahrens gemäß dem verbesserten Konzept abgeleitet und umgekehrt. Insbesondere kann eine Anordnung zum Videostreamen gemäß dem verbesserten Konzept dazu eingerichtet sein, ein Verfahren gemäß dem verbesserten Konzept auszuführen, oder führt ein solches Verfahren aus.
-
Gemäß dem verbesserten Konzept wird auch ein Computerprogrammprodukt mit wenigstens einem Satz von Befehlen bereitgestellt. Wenn der wenigstens eine Satz von Befehlen durch die wenigstens eine Recheneinheit einer Anordnung zum Videostreamen gemäß dem verbesserten Konzept ausgeführt wird, bewirkt der wenigstens eine Satz von Befehlen, dass die Anordnung zum Videostreamen ein Verfahren gemäß dem verbesserten Konzept ausführt.
-
Insbesondere kann der wenigstens eine Satz von Befehlen einen ersten Satz von Befehlen für die Fahrzeugrecheneinheit, einen zweiten Satz von Befehlen für die externe Serverrecheneinheit und einen dritten Satz von Befehlen für die Recheneinheit des Virtuelle-Realität-Systems enthalten. Die jeweiligen Recheneinheiten können dann den jeweiligen Satz von Befehlen ausführen, um zu bewirken, dass die Anordnung zum Videostreamen das Verfahren ausführt. Jeder der Sätze von Befehlen kann als jeweiliges Computerprogramm betrachtet werden.
-
Jeder der Sätze von Befehlen beziehungsweise jedes der Computerprogramme kann auf einem jeweiligen computerlesbaren Speichermedium gespeichert sein.
-
Weitere Merkmale der Erfindung sind aus den Ansprüchen, den Figuren und der Figurenbeschreibung ersichtlich. Die vorstehend in der Beschreibung erwähnten Merkmale und Merkmalskombinationen sowie die nachstehend in der Figurenbeschreibung erwähnten und/oder in den Figuren allein gezeigten Merkmale und Merkmalskombinationen können nicht nur von dem verbesserte Konzept in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen enthalten sein. Folglich sind Implementierungen des verbesserten Konzepts enthalten und offenbart, die nicht explizit in den Figuren gezeigt oder erläutert sein können, sondern aus separierten Merkmalskombinationen aus den erläuterten Implementierungen entstehen und erzeugt werden können. Implementierungen und Merkmalskombinationen, die nicht alle Merkmale eines ursprünglich formulierten Anspruchs aufweisen, können von dem verbesserten Konzept enthalten sein. Überdies können Implementierungen und Merkmalskombinationen, die über die in den Rückbezügen der Ansprüche dargelegten Merkmalskombinationen hinausgehen oder davon abweichen, von dem verbesserten Konzept enthalten sein.
-
In den Figuren zeigen:
- 1 schematisch eine beispielhafte Implementierung einer Anordnung zum Videostreamen gemäß dem verbesserten Konzept;
- 2 schematisch ein Fahrzeug und jeweilige Sichtfelder von Kameras, die am Fahrzeug montiert sind;
- 3 ein Ablaufdiagramm einer beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept;
- 4a eine Rückansicht eines Fahrzeugs
- 4b eine Seitenansicht eines Fahrzeugs
- 4c schematisch einen Rollwinkel eines Fahrzeugs;
- 4d schematisch einen Nickwinkel eines Fahrzeugs;
- 5 ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept;
- 6 die jeweiligen Sichtfelder von 2 sowie eine schematische Darstellung eines Rollwinkels und eines Nickwinkels;
- 7 ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept;
- 8 ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept; und
- 9 ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept.
-
1 zeigt schematisch eine beispielhafte Implementierung einer Anordnung 1 zum Videostreamen gemäß dem verbesserten Konzept, insbesondere zum Ausführen eines Verfahrens zum Videostreamen gemäß dem verbesserten Konzept.
-
Die Anordnung 1 zum Videostreamen kann ein Virtuelle-Realität-System 8 aufweisen, das als Virtuelle-Realität-Headset mit einem entsprechenden Anzeigegerät 7 und einer Recheneinheit 6 implementiert sein kann. Ferner kann die Anordnung 1 zum Videostreamen eine Fahrzeugrecheneinheit 4 des Fahrzeugs 2 und wenigstens eine Kamera 3a, 3b, 3c, 3d, die am Fahrzeug 2 montiert ist, aufweisen. Die wenigstens eine Kamera 3a, 3b, 3c, 3d kann beispielsweise eine Frontkamera 3c, eine Heckkamera 3d, eine linke Kamera 3a und eine rechte Kamera 3b aufweisen.
-
Die Anordnung 1 zum Videostreamen kann auch eine externe Serverrecheneinheit 5 aufweisen, die im Folgenden auch als Cloud bezeichnet werden kann. Die Fahrzeugrecheneinheit 4 kann in einigen Implementierungen als elektronisches Steuergerät, ECU, des Fahrzeugs 2, beispielsweise als Telekommunikations-ECU, das auch als TCU bezeichnet wird, implementiert sein.
-
Ferner weist die Anordnung 1 zum Videostreamen wenigstens einen Beschleunigungssensor 9, der auch als G-Sensor bezeichnet wird, des Fahrzeugs 2 auf, der jeweilige Sensordaten erzeugen kann, die beispielsweise eine Gierbewegung, eine Nickbewegung und/oder eine Rollbewegung des Fahrzeugs 2 betreffen. Der entsprechende Rollwinkel Φ und Nickwinkel θ sind in 4a bis 4d schematisch dargestellt. 4a zeigt das Fahrzeug 2 und die Kameras 3a, 3b, 3d von einer Rückansicht zu einer Referenzzeit und 4b zeigt eine Ansicht von der linken Seite des Fahrzeugs 2 sowie der Kameras 3a, 3c, 3d. Zur Referenzzeit entspricht das Fahrzeugkoordinatensystem, das der Längs-, Quer- und Hochachse des Fahrzeugs 2 entspricht, einem Referenz-Fahrzeugkoordinatensystem. Daher sind der Nickwinkel θ und der Rollwinkel Φ sowie der Gierwinkel (nicht gezeigt) in 4a und 4b null. In 4c und 4d ist eine jeweilige Rückansicht und linke Ansicht des Fahrzeugs 2 zu einer späteren Zeit gezeigt, wobei das Fahrzeugkoordinatensystem vom Referenz-Fahrzeugkoordinatensystem abweicht. In der beispielhaften Darstellung von 4c weicht der Rollwinkel Φ von null ab und in der beispielhaften Darstellung von 4d weicht der Nickwinkel θ von null ab.
-
In 2 ist das Fahrzeug 2 zusammen mit jeweiligen Sichtfeldern 10a, 10b, 10c, 10d der wenigstens einen Kamera 3a, 3b, 3c, 3d schematisch gezeigt. Obwohl in 2 nicht gezeigt, können die individuellen Sichtfelder 10a, 10b, 10c, 10d auch teilweise mit benachbarten Sichtfeldern überlappen.
-
Die Anordnung 1 zum Videostreamen gemäß 1 ist dazu eingerichtet, ein Verfahren zum Videostreamen gemäß dem verbesserten Konzept auszuführen. Dazu erzeugt die wenigstens eine Kamera 3a, 3b, 3c, 3d Videodaten, die die Umgebung des Fahrzeugs 2 darstellen. Wenigstens ein Videostream wird, beispielsweise durch die Fahrzeugrecheneinheit 4 oder durch die Cloud 5, erzeugt. Ein Texturabbild wird abhängig von dem wenigstens einen Videostream, beispielsweise durch die Cloud 5 oder die Recheneinheit 6 der Virtuelle-Realität-Vorrichtung 8, erzeugt und das Texturabbild wird auf eine virtuelle Oberfläche abgebildet, um ein Bild zu rendern, beispielsweise durch die Cloud 5 oder die Recheneinheit 6. Dann wird das gerenderte Bild mittels des Anzeigegeräts 7 angezeigt.
-
Ferner werden Sensordaten durch den wenigstens einen Beschleunigungssensor 9 des Fahrzeugs 2 abhängig von einer Bewegung des Fahrzeugs 2, insbesondere abhängig von einer Änderung des Nickwinkels θ und des Rollwinkels Φ, erzeugt. Der wenigstens eine Videostream wird abhängig von den Sensordaten erzeugt oder das Texturabbild wird abhängig von den Sensordaten erzeugt oder das Texturabbild wird abhängig von den Sensordaten auf die virtuelle Oberfläche abgebildet.
-
In dieser Weise kann die Bewegung des Fahrzeugs 2 durch Entfernen der Nick- und Rolldrehung aus dem Bild oder der entsprechenden Sequenz von Bildern, die durch das Anzeigegerät 7 angezeigt werden, teilweise kompensiert werden, während die Gierdrehung des Fahrzeugs 2 beibehalten werden kann, während sich das Auto in der realen Welt bewegt. Folglich hält das Rendern der 360°-Rundumsicht ungeachtet der Bewegung des Fahrzeugs 2 einen Horizont horizontal auf 360°. Dies entspricht einem Boden, auf dem sich der Benutzer des Virtuelle-Realität-Systems 8 befindet, der sich im Allgemeinen nicht bewegt. In dieser Weise kann eine Bewegungskrankheit vermieden werden.
-
3 zeigt ein schematisches Ablaufdiagramm einer beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept mit Verfahrensschritten S1 bis S13. Dabei können die Verfahrensschritte S1 bis S6 beispielsweise durch die Fahrzeugrecheneinheit 4 ausgeführt werden, die Verfahrensschritte S7 und S8 können durch die Cloud 5 ausgeführt werden und die Verfahrensschritte S9 bis S13 können durch die Recheneinheit 6 ausgeführt werden.
-
In Schritt S1 werden die Sensordaten durch den wenigstens einen Beschleunigungssensor 9 erzeugt und in Schritt S2 kann die Fahrzeugrecheneinheit 4 die Sensordaten codieren und in Schritt einen entsprechenden Datenstrom erzeugen S3. Der Datenstrom wird dann zur Cloud 5 übertragen. In Schritt S4 werden Videodaten durch die Kameras 3a, 3b, 3c, 3d erfasst und die jeweiligen Teile der Videodaten, die den individuellen Kameras 3a, 3b, 3c, 3d entsprechen, werden durch die Fahrzeugrecheneinheit 4 in Schritt S5 komprimiert. In Schritt S6 erzeugt die Fahrzeugrecheneinheit 4 einen jeweiligen Videostream für jeden der komprimierten Teile von Videodaten. Der Videostream wird in einem separaten Kommunikationskanal parallel zum Datenstrom zur Cloud 5 übertragen.
-
In der Implementierung von 3 kann die Cloud 5 beispielsweise keine Rechenschritte durchführen und daher den Datenstrom in Schritt S7 zur Recheneinheit 6 und die Videostreams in Schritt S8 zur Recheneinheit S6 weiterleiten. In Schritt S9 kann die Recheneinheit 6 den Datenstrom decodieren und einen aktuellen Rollwinkel Φ und aktuellen Nickwinkel θ des Fahrzeugkoordinatensystems berechnen. In Schritt S10 kann die Recheneinheit 6 Nachschlagetabellen für die Texturabbildung für jeden der Videostreams abhängig von den aktuellen Nick- und Rollwinkeln θ, Φ aktualisieren. In Schritt S11 kann die Recheneinheit 6 die von der Cloud 5 empfangenen Videostreams dekomprimieren und eine Texturabbildung für jeden der Videostreams abhängig von den aktualisierten Nachschlagetabellen in Schritt S12 durchführen. Folglich wird ein jeweiliges Texturabbild für jede der Kameras 3a, 3b, 3c, 3d erzeugt. In Schritt S13 kann die Recheneinheit 6 ein jeweiliges Bild rendern, indem die Texturabbilder auf eine virtuelle Renderoberfläche abgebildet werden, die beispielsweise eine kugel- oder schalenartige Oberfläche sein kann, um eine realistische Ansicht für die gerenderten Bilder nachzuahmen. Danach können die gerenderten Bilder durch die Recheneinheit 6 kombiniert und durch das Anzeigegerät 7 angezeigt werden.
-
5 zeigt ein Ablaufdiagramm für eine weitere beispielhafte Implementierung eines Verfahrens gemäß dem verbesserten Konzept. Das Verfahren kann als Variante des mit Bezug auf 3 beschriebenen Verfahrens betrachtet werden. Insbesondere sind die Schritte S1 bis S6 zu den mit Bezug auf 3 beschriebenen Schritten S1 bis S6 identisch. Im Gegensatz zu dem Verfahren von 3 wird der Datenstrom decodiert und der Nickwinkel und der Rollwinkel θ, Φ werden durch die Cloud 5 in Schritt S9 aktualisiert. Die Nachschlagetabellen werden auch dementsprechend in Schritt S10 durch die Cloud 5 aktualisiert. Die Videodekompression in Schritt S11 wird auch durch die Cloud 5 ausgeführt. Folglich sind die Schritte S7 und S8 der Weiterleitung der Daten und Videostreams nicht mehr vorhanden. In Schritt S12 werden die mit Bezug auf 3 beschriebenen Texturabbildungsprozesse durch die Cloud 5 ausgeführt. In Schritt S11' werden die resultierenden Texturabbilder durch die Cloud 5 komprimiert und die resultierenden Streams werden in Schritt S8' durch die Cloud 5 zur Recheneinheit 6 übertragen. In Schritt S11" dekomprimiert die Recheneinheit 6 die empfangenen Videostreams. Schritt S13 entspricht dem Schritt S13 von 3.
-
7 zeigt ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept. Auch hier entsprechen die Schritte S1 bis S6 sowie die Schritte S7 und S8 den jeweiligen Schritten S1 bis S8 von 3. Der Dekompressionsschritt von S11 ist auch derselbe, wie mit Bezug auf 3 beschrieben. Im folgenden Schritt S12' wird jedoch ein Satz von statischen Nachschlagetabellen, der insbesondere nicht abhängig von dem Sensordatenstrom aktualisiert wird, durch die Recheneinheit 6 für die Texturabbildungsschritte verwendet. Stattdessen wird der Datenstrom durch die Recheneinheit 6 in Schritt S9' decodiert und durch die Recheneinheit 6 zum Rendern des Bildes und insbesondere zum Abbilden der Texturabbilder auf die virtuelle Oberfläche in Schritt S13' berücksichtigt. Dazu kann die Recheneinheit 6 beispielsweise die virtuelle Oberfläche drehen, um den Rollwinkel Φ und den Nickwinkel θ zu kompensieren, wie schematisch in 6 dargestellt. Wie in 6 gezeigt, kann die Drehung aus Drehungen um -Φ und -θ bestehend erachtet werden, um die Bewegung des Fahrzeugs 2 zu kompensieren.
-
In 8 ist ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept gezeigt. Dabei entspricht Schritt T1 dem Schritt S1 von 3, 5 und 7. Analog entsprechen die Schritte T3a, T3b, T3c und T3d dem Schritt S4 von 3, 5 und 7, wobei die Videodaten durch die Kameras 3a, 3b, 3c, 3d erfasst werden. In Schritt T2 kann die Fahrzeugrecheneinheit 4 den aktuellen Rollwinkel Φ und den aktuellen Nickwinkel θ abhängig von den Sensordaten bestimmen und eine aktualisierte Lage der Kameras entsprechend berechnen. In Schritt T4 kann die Fahrzeugrecheneinheit 4 die Teile der Videodaten mittels einer äquirektangulären Projektion unter Berücksichtigung der jeweiligen Orientierungen der Kameras 3a, 3b, 3c, 3d hinsichtlich des aktualisierten Rollwinkels Φ und Nickwinkels Θ, die in Schritt T2 erhalten werden, kombinieren. Folglich kann ein einzelner kombinierter Videostream in Schritt T6 erzeugt und komprimiert und zur Cloud 5 übertragen werden. Die Cloud 5 leitet den Videostream in Schritt T6 zur Recheneinheit 6 weiter. Die Recheneinheit 6 dekomprimiert den kombinierten Videostream in Schritt T7 und bildet die äquirektanguläre Projektion auf die virtuelle Oberfläche in Schritt T8 ab, um das Bild zu rendern. Mit anderen Worten, die äquirektanguläre Projektion dient in dieser Implementierung als Texturabbild.
-
In 9 ist ein Ablaufdiagramm einer weiteren beispielhaften Implementierung eines Verfahrens gemäß dem verbesserten Konzept gezeigt. Das Verfahren basiert auf dem Verfahren von 8, wobei der Rechenschritt der äquirektangulären Projektion T4 durch die Cloud 5 ausgeführt wird. Die Schritte T2 und T5 werden auch durch die Cloud 5 ausgeführt. Die Schritte T7 und T8 sind zu jenen von 8 identisch und werden durch die Recheneinheit 6 ausgeführt. Die Schritte T1 und T3a bis T3d sind auch zu den jeweiligen Schritten von 8 identisch. In Schritt T9 werden die Sensordaten codiert und der Datenstrom wird in Schritt T10 durch die Fahrzeugrecheneinheit 4 erzeugt.
-
In der Implementierung von 9 wird jeder Teil der Videodaten separat in den jeweiligen Schritten T11a, T11b, T11c, T11d komprimiert und jeweilige Videostreams werden in den jeweiligen Schritten T12a, T12b, T12c, T12d durch die Fahrzeugrecheneinheit 4 erzeugt und zur Cloud 5 weitergeleitet. Ferner werden in den Schritten T13a, T13b, T13c, T13d die übertragenen Videostreams durch die Cloud 5 dekomprimiert, bevor die äquirektanguläre Projektion in Schritt T4 ausgeführt wird.
-
Gemäß dem verbesserten Konzept, wie beschrieben, wird ein Verfahren zum Streamen von Videoinhalten von Kameras, die an einem Fahrzeug montiert sind, zu einem entfernten Virtuelle-Realität-System bereitgestellt, das Bewegungskrankheit für den Benutzer verringert.
-
Gemäß verschiedenen Implementierungen werden die durch den wenigstens einen Beschleunigungssensor erzeugten Daten in einem separaten Kanal gestreamt, so dass sie durch die jeweilige Recheneinheit des Fahrzeugs, der Cloud oder des Virtuelle-Realität-Systems für die Bewegungskompensation berücksichtigt werden.