Blog

Développer de meilleurs logiciels de visualisation de nuages de points pour obtenir des informations plus pertinentes

Rédigé par Saad Support | 17 août 2023, 14 h 00

Permettre la visualisation de données denses

Équipe de visualisation au sein du département d'ingénierie

Depuis quelques années, notre équipe d'ingénierie de visualisation développe des logiciels permettant d'exploiter les données collectées par Hovermap. La densité des données recueillies et leurs nombreuses applications ont rendu nécessaire la mise au point d'un outil de visualisation de nuages de points devant répondre à de nombreuses exigences techniques afin d'optimiser l'expérience utilisateur des Hovermap . Cette série d'articles explore les aspects à prendre en compte et les solutions innovantes qu'ils ont mises au point pour proposer le logiciel de visualisation Emesent.

L'équipe d'ingénierie de visualisation a commencé à développer une application de visualisation à l'aide d'Unreal Engine, un outil 3D utilisé dans 3D , l'architecture et les logiciels d'ingénierie. Cette application comprend un plugin de nuages LiDAR qui nous permet d'afficher nos nuages de points. Ce plugin utilise le partitionnement spatial Octree, associé à un « point budget », pour sélectionner les points les plus pertinents à afficher parmi l'ensemble des points du nuage. Le budget de points limite les points affichés à ce que le moteur de rendu ou le processeur graphique (GPU) est capable de supporter.

L'un des avantages de cette approche est que, même lorsque l'on explore des milliards de points, nous ne rendons qu'un sous-ensemble restreint de points actuellement visibles dans la fenêtre d'affichage, et même là, uniquement ceux qui sont les plus pertinents sur le plan visuel. Nous pouvons ainsi conserver une fréquence d'images très réactive tout en explorant ces données.

L'inconvénient de cette technique est que nous n'exploitons que les données que l'algorithme juge pertinentes ou importantes. Plus le budget de points est faible, plus ces décisions algorithmiques influencent le résultat final. Il existe des moyens de contourner ce problème, par exemple en utilisant une taille de point plus importante pour fondre les points dans les surfaces. Cependant, il s'agit là essentiellement de données synthétiques et non de données « réelles ».

Cela n'est pas nécessaire pour Hovermap , car celles-ci produisent des nuages de points très denses, et les détails sont déjà présents sans qu'il soit nécessaire de les synthétiser. Ainsi, depuis le lancement du projet, nous avons développé le plugin afin qu'il puisse prendre en charge nos données denses.

L'une de nos premières extensions a consisté à prendre en charge les attributs des points générés par notre logiciel SLAM . Nous avons intégré la prise en charge de l'affichage des attributs d'intensité, de temps, de numéro d'anneau, de distance et de couleur réelle.

Une autre consistait à porter notre budget de rendu par image à 100 millions de points, soit bien au-delà des capacités par défaut d'Unreal.

Hovermap avant le rendu multi-images Emesent.

La fonctionnalité de rendu multi-images de l'application de visualisation Emesentpermettra aux utilisateurs d'explorer rapidement Hovermap contenant des milliards de points.

Mais cela ne répondait pas à nos exigences. Hovermap des ensembles de données contenant des milliards et des milliards de points ; nous avions donc besoin d'une approche différente pour notre résultat final.

Afin de permettre un rendu plein écran de tous les points, nous avons développé un système que nous appelons « Multi-Frame Rendering ». Grâce à ce concept, nous avons modifié le moteur de rendu pour construire l'image sur plusieurs images GPU. Pour l'appliquer, l'algorithme commence par parcourir l'octree à la recherche des nœuds les plus pertinents visuellement (ensembles de points) ; ceux-ci sont marqués, puis rendus. L'algorithme parcourt ensuite à nouveau l'octree et recherche les nœuds suivants les plus pertinents visuellement qui n'ont pas encore été rendus. Ce processus est répété jusqu'à ce qu'il ne reste plus aucun point.

Chaque image est générée à partir des données de profondeur afin de constituer une image finale regroupant tous les points, qu'il s'agisse d'un milliard ou de dix milliards. Ces images montrent que la densité des Hovermap est tout simplement impressionnante, et nous pouvons désormais les afficher dans notre visionneuse. Les temps de rendu dépendent du nombre de points et du matériel utilisé, mais le processus est très rapide : le rendu multi-images permet de traiter un milliard de points en quelques secondes.

Cette approche permettra à nos utilisateurs d'explorer rapidement Hovermap contenant des milliards de points et de générer rapidement des images d'une qualité irréprochable qui reflètent fidèlement les données capturées, sans aucun compromis.

Dans le prochain article de cette série, nous verrons comment créer l'interface utilisateur ; n'hésitez pas à nous suivre sur LinkedIn pour savoir quand il sera disponible.