Amélioration du tracking de position pour jeux interactifs collaboratifs

Body Tracking pour de la projection événementielle |

Computer vision | OpenCV | Projection mapping

Concept

Smile in the Light est un dispositif de jeux interactifs et collaboratifs lors des moments d’attentes. Ils créent autour du jeu, des instants de cohésions sociales et de convivialités. Cette startup a fait appel à TorrusVR afin de les aider à résoudre des problématiques techniques de tracking de position de personnes et de calibration du tracking avec les vidéo projecteurs.

Le projet

Smile in the Light avait déjà réalisé son jeu, mais avait besoin d’amélioration au niveau du tracking de position des joueurs. Il y avait notamment trois problèmatiques à régler : Pouvoir utiliser au moins 2 caméras sur le même PC Garder une latence la plus faible possible Pouvoir suivre jusqu’à 4 joueurs simultanément Une des conditions était d’utiliser les caméras de profondeur Intel Realsense. Généralement nous préférons plutôt leur concurrent, les Kinect Azure, car elles intègrent déjà du Body Tracking, sans passer par des plugins tierces comme le fait maintenant Intel. Le vrai problème est que ces fameux plugins tierces ne gèrent pas d’avoir plus d’une caméra sur le PC, ce qui semble quand même assez incroyable comme limitation. Le client n’ayant besoin que de la position des joueurs, nous avons donc choisit d’écrire notre algorithme custom d’analyse de nuage de points.

Algorithmes de tracking

Calibration du Projecteur

Les caméras et le projecteur ne sont jamais parfaitement alignée. Il faut donc pouvoir calibrer les caméras avec le projecteur, pour lorsqu’une caméra voit une personne ou un point, on puisse savoir “où” sur l’écran du projecteur, cette personne se trouve. Cette partie est crucial afin de donner un sens au suivi de position. Heureusement nous avons développé un algorithme permettant de calculer cette calibration en une fraction de seconde. Il suffit que les caméras voient l’image du projecteur, et en quelques captures d’images, elles savent exactement où elles se trouvent par rapport à l’écran de projection. Il s’agit un peu de notre formule magique, alors on ne s’attardera pas plus sur la méthode…

Analyse du nuage de point

Nous avons pu constater à force de faire des projets utilisant les caméras de profondeur (notamment la Kinect), que la partie “Body tracking” est souvent extrêmement couteuse en GPU et crée de la latence. De plus nous n’avons pas toujours besoin de connaitre la position de chaque membre du corps du joueur, mais souvent uniquement sa position au sol. En général nous analysons donc directement le nuage de point en sorti de caméra. La première étape consiste souvent à capturer une “baseline” de la pièce qu’on utilisera pour détecter les différences entre ce qui est en train d’être scan et cette baseline. Ces différences passent ensuite dans un algorithme de détection de “blob”. On va chercher tous les amas de points qui sont proches. Finalement la dernière passe est le tracking à proprement parler. On garde un historique des “blobs” afin de d’associer les nouvelles positions aux anciens “blobs”, de détecter si un nouveau joueur arrive ou si un joueur part. Pour ce projet tout l’algorithme est fait en C#, afin de rendre au client un package Unity qu’il peut directement intégrer dans son jeu.

En conclusion

Évidemment l’ensemble de ces algorithmes n’est pas si simple à mettre en place, et c’est notre expérience dans le domaine du tracking et du computer vision qui nous permet de rapidement rendre un projet à un client, là où des développeurs dont ça n’est pas la spécialité auraient dû y passer beaucoup plus de temps. Nous avons développé un framework interne permettant de rapidement créer des solutions de tracking pour des murs interactifs, tracking de personne, de visage, de main pour rendre vos expériences plus interactives !

Ici notre client était ravis du résultat, le projet a été livré et n’a nécessité aucune modification.

Vous avez un projet ou besoin d'information? 

N'hésitez pas à nous contacter !

   contact@torrusvr.com

   Bordeaux / Paris

Développement d'Expériences Immersives

Technologies immersives

Realité Virtuelle (RV)
Realité Augmentée (RA)
Action Game / Escape Game
Metaverse
Computer Vision
Projection Mapping
Jeux vidéos

Système embarqué

Internet des objets (IoT)
Industry 4.0
Système embarqué sur Unités Centrales (UC) Conception de Circuit Electronique (PCB)
IoT Gateway

Contact

contact@torrusvr.com