Brevet FR3051572A1 — publié le 20171124

La présente invention concerne de manière générale une méthodologie et une application permettant la lecture interactive de contenus préenregistrés interactifs avec un dispositif de réalité virtuelle avec visiocasque (2). Les contenus préenregistrés peuvent être de type prise de vue réelle avec différents types de dispositifs de captation 360 degrés par caméra unique ou par reconstitution à travers un dispositif comprenant plusieurs caméras. Nous n'aborderons pas ici en détail le principe de la création de vidéo à 360 degrés en captation réelle, il consiste aujourd'hui en de la captation de plusieurs angles différents puis recombinés ensemble grâce une technologie appelée « stitching ». La méthodologie ne s'appuyant pas sur les méthodes de créations de contenus 360 degrés mais sur leur utilisation. La vidéo peut également avoir été au préalablement générée avec un logiciel 3D de conception assistée par ordinateur 3D dans lequel aura préalablement appliqué un système de projection sphérique pour avoir à chaque instant l'intégralité de la scène à 360 degrés. Cette méthode appelée Rendu 3D en précalculé consiste à générer une vidéo dont chaque image aura été calculée sur un ou plusieurs ordinateurs, chacune de ces images pouvant nécessiter quelques minutes, quelques heures voir plusieurs jours pour un seul ordinateur. La méthode décrite ici est particulièrement efficace dans le cas de vidéos 3D pré-calculées car la capacité de calcul nécessaire pour un affichage en temps réel est particulièrement consommatrice en terme de ressources de calcul. Le temps réel 3D consiste à ce que l'ordinateur calcule chaque image à afficher sans précalcul, soit dans le cas d'un affichage en 90Hz au calcul en approxivement 11 millisecondes. La réalité virtuelle nécessitant une résolution très élevée pour atteindre une qualité d'affichage optimale ainsi qu'une fréquence de rafraichissement des images très importante, idéalement au moins 90 images par secondes, le recours à de la 3D précalculée est une solution optimale pour avoir un rendu d'une très grande fidélité. La méthodologie, ajoutant 3051572 à ce précalcul, une notion d'interactivité auparavant impossible sur une vidéo, permet ainsi à l'utilisateur d'avoir le sentiment d'une application qui réagit ses choix couplé à une vue à 360 degrés. Les vidéos sphériques (1) sont sont ici détaillées au format équirectangulaire mais pourrait également être adaptés au format de type Cubemap (6 faces) ou tout type de format à venir, les vidéos sont ainsi constituées d'une série d'images dans un des formats précédemment cités. Ces différentes vidéos peuvent être monoscopiques, c'est à dire la même image pour l'oeil droit et l'oeil gauche, ou stéréoscopique sous la forme d'un flux vidéo de type « Side by Side » ou « Top Bottom » contenant un flux spécifique pour l'oeil droit et l'oeil gauche permettant ainsi ce rendu stéréoscopique. Nous appellerons flux vidéo (8) une vidéo sphérique qui peut être lue et affichée immédiatement. Nous ne mentionnons pas ici la résolution des vidéos, car elle est assujettie à être augmentée année après année au fil des progrès technologiques. La Fig.2 représente l'architecture globale utilisée dans la méthode. Le module de Réalité Virtuelle (2) permet de gérer tout ce qui est affichage de l'image dans le visiocasque, le fonctionnement technique du visiocasque n'entre ici pas en considération et est donc géré de manière autonome par ce module qui peut être à la fois codé spécifiquement ou encore reposer sur une solution logicielle fournie par le constructeur du casque ou par un tiers. Le module permettant de gérer tout ce qui est orientation du visiocasque, ou/et orientation du regard, est géré par le module de Capteur d'Orientation (4), le fonctionnement technique du capteur d'orientation n'entre pas ici en considération et est donc géré de manière autonome par ce module qui peut 3051572 être à la fois codé spécifiquement ou encore reposer sur une solution logicielle fournie par le constructeur du casque ou par un tiers. Le Module de gestion des entrées (5) permet de recueillir toutes actions de l'utilisateur à travers un dispositif électronique, ainsi non exhaustivement, depuis les touches d'un clavier informatique, un joystick ou un bouton de manettes de jeux vidéo, un clic sur une souris, un trackball, une action sur un dispositif haptique type gant, ou tout autre dispositif électronique permettant d'interpréter un flux d'entrée qui a été la volonté d'un utilisateur. Le Module des données Internet (3) permet de gérer tout ce qui est récupération de données depuis un serveur, sous la forme de données vidéos entières ou partielles sous la forme de Streaming vidéo. Le format de la compression des données des vidéos n'est ici pas pris en considération et ne change en rien la méthodologie générale. Le Module de Vidéo Interactive (6) est le coeur de la méthodologie et est expliqué dans le détail en Fig. 3 La Fig.3 illustre le fonctionnement de la méthodologie de vidéos interactive s(6) en réalité virtuelle. Nous disposons ainsi dans l'application d'un nombre N de flux vidéos en 360 degrés (8), nombre N sans limite à part celle de la quantité de mémoire pouvant être gérée par la machine faisant exécuter le code. Le gestionnaire de flux (7) permet de gérer ces N flux de sorte qu'ils puissent être chargés ou partiellement chargés en mémoire en un même instant T ou répartis dans le temps selon un fichier de configuration. Ce fichier de configuration écrit dans un formatage de son choix (XML, JSon, ...) contiendra les temps clefs pendant lesquels des flux déterminés devront être chargés en mémoire. Le gestionnaire de flux (7) a également la tache en 3051572 fonction des données qu'il recueille depuis le Module de Gestion de l'Orientation (4) ainsi que celui de la gestion des Entrées (5) d'afficher le flux vidéo correspondant. Techniquement le saut de flux vidéo (1) se fait en préchargeant différents flux vidéo (1) et ainsi pouvoir afficher le flux du choix de l'utilisateur sans décalage ou interruption visuelle. Le résultat escompté est de donner le sentiment à l'utilisateur qu'il agit activement dans le déroulement de ce qu'il perçoit visuellement. Et ceci dans le cas de vidéos en 3D précalculée (1), sans la nécessité d'un équipement avec une capacité de calcul élevée. L'ensemble du processus de chargement des flux (1) et de la gestion de leur affichage (10) peut être opéré en local sur la machine utilisée, non exhaustivement un Smartphone, une Tablette, un Pc, ou encore tout équipement informatique dotée de capacités techniques permettant le traitement et l'af fichage d'un contenu vidéo. Le calcul du préchargement et affichage du flux peut également être opéré à distance sur un serveur. Enfin le Module de Gestion de l'affichage (10), permet d'envoyer la ou les images finales au module de Réalité Virtuelle (2). L'application consiste en un logiciel informatique local ou accessible depuis internet (3). Dans le cas d'Internet, 2 solutions techniques sont applicables à la méthodologie, la première consistant à utiliser des flux vidéos (1) qui ne sont pas stockés en local mais accessible en streaming depuis internet. Cette solution étant basée sur un système de type Cloud Storage, où l'ensemble des vidéos est stocké sur serveur distant. La deuxième solution consistant à effectuer le mixage et la gestion des actions utilisateurs à distance et seul le rendu final est accessible en Streaming. Cette solution étant basée sur un Système de type Cloud Computing. 3051572 Le Module de Gestion de l'affichage (10) va ainsi créer un univers 3D dans lequel une caméra virtuelle est placée au centre d'une sphère en 3 dimensions générée selon la formule mathématique suivante (Fig.1) : Pour M lignes de latitude (horizontal) et N lignes de longitude (vertical), les vertex sont définis tels que : (x, y, z) = (sin(Pi * m/M) cos(2Pi * n/N), sin(Pi * m/M) sin(2Pi * n/N), cos(Pi * m/M)) pour chaque m dans { 0, ..., M } et n dans { 0, ..., N1 } Il est à préciser que chaque vertex composant la sphère contiendra une normale dirigée vers le centre de la sphère de manière à avoir l'ensemble des polygones dirigés en direction de la caméra. L'orientation de la caméra est fixée par rapport à l'orientation du casque virtuel grâce à un capteur d'orientation du casque (4). Ainsi si l'utilisateur tourne la tête de x degrés horizontalement et y degrés verticalement, la caméra va elle aussi tourner de x et y degrés de manière à suivre le regard de l'utilisateur. Ce capteur est laissé à la discrétion du fabriquant et ne rentre pas dans la méthodologie, ce capteur peut ainsi être basé sur un système de gyroscopes, un système de tracking infrarouge ou encore tout autre type de système de capteur existant ou à venir. La sphère va contenir dans sa face intérieure la vidéo à 360 degrés (1) à af ficher. La vidéo est appliquée sous la forme d'un matériau 3D contenant une 3051572 texture qui se mettra à jour à chaque rafraichissement de l'affichage avec la frame correspondante à afficher. La texture de la vidéo sphérique est alors appliquée à la sphère selon les coordonnées de texture suivantes : uvs [n + m * (N + 1) + 1] =( n / N, 1 -(m+1) / (M+1) ) pour chaque m dans { 0, ..., M } et n dans { 0, ..., NI } Le module de Gestion des Flux Vidéos (9) consiste à avoir plusieurs flux de vidéos (1) permettant de basculer d'un flux à l'autre sans interruption et ainsi permettre une réaction immédiate et interactive par rapport aux actions de l'utilisateur. On appelle flux de vidéo, une méthode permettant la lecture d'une vidéo de manière immédiate car chacun des flux contiendra un tampon de mémoire lui permettant d'avoir préchargé au préalable un temps défini de la vidéo. Ce temps pouvant être déterminé en fonction de la quantité de mémoire disponible sur le matériel faisant fonctionner l'application. L'utilisateur peut ainsi interagir sous différentes formes : -La validation d'un bouton positionné dans l'espace sphérique selon une coordonnées x et y, une taille w et z, une représentation graphique du bouton et, ou, un texte descriptif. Validation qui peut se faire en positionnant le regard un certain laps de temps dans sa direction ou en le regardant et en le validant par une action. -Le regard sur un élément prédéterminé de la scène caractérisé par un masque composé d'une suite de points dans l'espace sphérique mais sans distinction visuelle. 3051572 La validation d'un bouton peut se faire en corrélant les données du Module d'Entrées (5) avec les données du Module d'Orientation (4). Ainsi par exemple, si l'utilisateur a le casque orienté à X degrés horizontalement et Y degrés verticalement avec une valeur d'entrée clavier de type E, alors le bouton sera considéré comme validé. Le précédent exemple peut ainsi être étendu à tout dispositif utilisé dans le Module d'entrée. Non exhaustivement, l'interaction peut alors réaliser une action déterminée parmi plusieurs possibilités : - Le saut d'une séquence vidéo à une autre séquence vidéo - La mise en boucle d'une séquence vidéo en attente d'une action - La mise en pause de la séquence vidéo - Le changement de la vitesse de lecture - Le stockage des précédentes actions dans des variables pour ainsi déterminer une future action à réaliser La méthodologie s'appuyant sur la gestion des flux vidéo et non sur leur utilisation. En effet la méthodologie permet dans son utilisation intensive de pouvoir réaliser des séquences interactives de grande qualité en utilisant de multiples flux de courtes durées. Le Module Application Spécifique (7) permet ainsi de surclasser la présente méthodologie de réalité virtuelle interactive pour les besoins souhaités. REVENDICATIONS1. Un équipement informatique permettant de réaliser des interac- tions en réalité virtuelle sur des vidéos sphériques (1) préenregistrés caractérisé par la composition suivante : - Un Module de Réalité Virtuelle (2) permettant la gestion d'affichage dans un visiocasque; - Un Module de capteur d'Orientation (4) permettant de récupérer l'orientation du visiocasque; - Un Module permettant de récupérer toutes les actions de l'utilisateur (5); - Un Module permettant de gérer les différents flux de vidéo 360 degrés et leur affichage (6); 2. Un système de réalité virtuelle comme défini en revendication 1, dans lequel le dispositif permettant la gestion du flux de vidéos et le traitement des interactions de l'utilisateur se réalise sur un serveur à distance (3) dont le seul le retour visuel et audio pour le visiocasque est transmis en streaming. 3. Un système de réalité virtuelle comme défini en revendication 1 ou 2, dans lequel les flux de vidéo à 360 pourront être mixés sous forme de calques superposés avec des paramètres de mélanges entre chacun. 4. Un système de réalité virtuelle comme défini en revendications 1, 2 ou 3 dans lesquels les vidéos pourront être utilisées avec un angle de visionnage partiel inférieur à 360 degrés