Rendu de volume - Volume rendering

Plusieurs tomographes à rayons X (avec étalonnage quantitatif de la densité minérale ) empilés pour former un modèle 3D.
Scanner de volume rendu d'un avant-bras avec différents schémas de couleurs pour les muscles, la graisse, les os et le sang

Dans la visualisation scientifique et l'infographie , le rendu volumique est un ensemble de techniques utilisées pour afficher une projection 2D d'un ensemble de données 3D échantillonnées discrètement , généralement un champ scalaire 3D .

Un ensemble de données 3D typique est un groupe d'images en coupe en 2D acquises par un scanner , IRM ou microCT scanner . Habituellement, ceux-ci sont acquis selon un modèle régulier (par exemple, une tranche pour chaque millimètre de profondeur) et ont généralement un nombre régulier de pixels d' image dans un modèle régulier. Ceci est un exemple de grille volumétrique régulière, avec chaque élément de volume, ou voxel représenté par une valeur unique qui est obtenue en échantillonnant la zone immédiate entourant le voxel.

Pour rendre une projection 2D de l'ensemble de données 3D, il faut d'abord définir une caméra dans l'espace par rapport au volume. En outre, il faut définir l' opacité et la couleur de chaque voxel. Ceci est généralement défini à l'aide d'une fonction de transfert RGBA (pour rouge, vert, bleu, alpha) qui peut mapper n'importe quelle valeur de voxel possible à une valeur RGBA.

Par exemple, un volume peut être visualisé en extrayant des isosurfaces (surfaces de valeurs égales) du volume et en les rendant sous forme de maillages polygonaux ou en rendant le volume directement sous forme de bloc de données. L' algorithme des cubes en marche est une technique courante pour extraire une isosurface à partir de données de volume. Le rendu de volume direct est une tâche gourmande en calculs qui peut être effectuée de plusieurs manières.

Portée

Types de présentations de tomodensitométrie , avec deux exemples de rendu de volume.

Le rendu de volume se distingue des présentations de tomographie en tranches minces , et se distingue également généralement des projections de modèles 3D, y compris la projection d'intensité maximale . Pourtant, techniquement, tous les rendus de volume deviennent des projections lorsqu'ils sont visualisés sur un affichage en 2 dimensions , ce qui rend la distinction entre les projections et les rendus de volume un peu vague. Néanmoins, les épitomes des modèles de rendu de volume comportent un mélange de coloration et d'ombrage par exemple afin de créer des représentations réalistes et / ou observables.

Rendu de volume direct

Un rendu de volume direct nécessite que chaque valeur d'échantillon soit mappée à l'opacité et à une couleur. Ceci est fait avec une " fonction de transfert " qui peut être une simple rampe, une fonction linéaire par morceaux ou une table arbitraire. Une fois converti en une valeur de modèle de couleur RGBA (pour le rouge, le vert, le bleu, l'alpha), le résultat RGBA composé est projeté sur le pixel correspondant du tampon d'image. La façon dont cela est fait dépend de la technique de rendu.

Une combinaison de ces techniques est possible. Par exemple, une implémentation de déformation de cisaillement pourrait utiliser du matériel de texturation pour dessiner les tranches alignées dans le tampon hors écran .

Coulée de rayon de volume

Volume Ray Casting. Momie de crocodile fournie par le Phoebe A. Hearst Museum of Anthropology, UC Berkeley. Les données CT ont été acquises par le Dr Rebecca Fahrig, Département de radiologie, Université de Stanford, à l'aide d'une définition SOMATOM de Siemens, Siemens Healthcare. L'image a été rendue par le moteur High Definition Volume Rendering® de Fovia

La technique de la projection de rayons volumiques peut être dérivée directement de l' équation de rendu . Il fournit des résultats de très haute qualité, généralement considérés comme offrant la meilleure qualité d'image. La projection de rayons de volume est classée comme technique de rendu de volume basée sur l'image, car le calcul émane de l'image de sortie, et non des données de volume d'entrée, comme c'est le cas avec les techniques basées sur les objets. Dans cette technique, un rayon est généré pour chaque pixel d'image souhaité. En utilisant un modèle de caméra simple, le rayon commence au centre de projection de la caméra (généralement le point de l'œil) et passe à travers le pixel de l'image sur le plan de l'image imaginaire flottant entre la caméra et le volume à rendre. Le rayon est découpé par les limites du volume afin de gagner du temps. Ensuite, le rayon est échantillonné à intervalles réguliers ou adaptatifs dans tout le volume. Les données sont interpolées à chaque point d'échantillonnage, la fonction de transfert est appliquée pour former un échantillon RGBA, l'échantillon est composé sur le RGBA accumulé du rayon et le processus est répété jusqu'à ce que le rayon quitte le volume. La couleur RVBA est convertie en une couleur RVB et déposée dans le pixel d'image correspondant. Le processus est répété pour chaque pixel de l'écran pour former l'image terminée.

Éclaboussures

C'est une technique qui troque la qualité pour la vitesse. Ici, chaque élément de volume est éclaboussé , comme Lee Westover l'a dit, comme une boule de neige, sur la surface de visualisation dans l'ordre inverse . Ces splats sont rendus sous forme de disques dont les propriétés (couleur et transparence) varient diamétralement de manière normale ( gaussienne ). Les disques plats et ceux avec d'autres types de distribution de propriétés sont également utilisés en fonction de l'application.

Chaîne de cisaillement

Exemple de rendu de crâne de souris (CT) utilisant l'algorithme de déformation de cisaillement

L'approche de la chaîne de cisaillement pour le rendu de volume a été développée par Cameron et Undrill, popularisée par Philippe Lacroute et Marc Levoy . Dans cette technique, la transformation de visualisation est transformée de telle sorte que la face la plus proche du volume devienne un axe aligné avec un tampon de données d' image hors écran avec une échelle fixe de voxels en pixels. Le volume est ensuite rendu dans ce tampon en utilisant l'alignement de mémoire beaucoup plus favorable et des facteurs de mise à l'échelle et de fusion fixes. Une fois que toutes les tranches du volume ont été rendues, le tampon est alors déformé dans l'orientation souhaitée et mis à l'échelle dans l'image affichée.

Cette technique est relativement rapide dans les logiciels au prix d'un échantillonnage moins précis et d'une qualité d'image potentiellement pire par rapport à la projection de rayons. Il y a une surcharge de mémoire pour stocker plusieurs copies du volume, pour la possibilité d'avoir des volumes alignés près de l'axe. Cette surcharge peut être atténuée à l'aide du codage de longueur d'exécution .

Rendu de volume basé sur la texture

Une tête de cadavre à rendu de volume utilisant un mappage de texture aligné sur la vue et une réflexion diffuse

De nombreux systèmes graphiques 3D utilisent le mappage de texture pour appliquer des images ou des textures à des objets géométriques. Les cartes graphiques PC Commodity sont rapides à texturer et peuvent rendre efficacement des tranches d'un volume 3D, avec des capacités d'interaction en temps réel. Les GPU des stations de travail sont encore plus rapides et constituent la base d'une grande partie de la visualisation du volume de production utilisée dans l'imagerie médicale , le pétrole et le gaz et d'autres marchés (2007). Au cours des années précédentes, des systèmes de cartographie de texture 3D dédiés étaient utilisés sur des systèmes graphiques tels que Silicon Graphics InfiniteReality , l' accélérateur graphique HP Visualize FX , etc. Cette technique a été décrite pour la première fois par Bill Hibbard et Dave Santek.

Ces tranches peuvent être soit alignées avec le volume et rendues à un angle par rapport au spectateur, soit alignées avec le plan de visualisation et échantillonnées à partir de tranches non alignées à travers le volume. La prise en charge du matériel graphique pour les textures 3D est nécessaire pour la deuxième technique.

La texture alignée sur le volume produit des images de qualité raisonnable, bien qu'il y ait souvent une transition notable lorsque le volume est tourné.

Rendu de volume accéléré par le matériel

En raison de la nature extrêmement parallèle du rendu de volume direct, le matériel de rendu de volume à usage spécial était un sujet de recherche riche avant que le rendu de volume GPU ne devienne assez rapide. La technologie la plus citée était le système de diffusion de rayons en temps réel VolumePro, développé par Hanspeter Pfister et des scientifiques de Mitsubishi Electric Research Laboratories , qui utilisait une bande passante mémoire élevée et une force brute pour effectuer le rendu à l'aide de l'algorithme de diffusion de rayons. La technologie a été transférée à TeraRecon, Inc. et deux générations d'ASIC ont été produites et vendues. Le VP1000 est sorti en 2002 et le VP2000 en 2007.

Une technique récemment exploitée pour accélérer les algorithmes de rendu de volume traditionnels tels que le lancer de rayons est l'utilisation de cartes graphiques modernes. En commençant par les shaders de pixels programmables , les gens ont reconnu la puissance des opérations parallèles sur plusieurs pixels et ont commencé à effectuer des calculs à usage général sur (les) unités de traitement graphique (GPGPU). Les pixel shaders sont capables de lire et d'écrire de manière aléatoire à partir de la mémoire vidéo et d'effectuer des calculs mathématiques et logiques de base. Ces processeurs SIMD ont été utilisés pour effectuer des calculs généraux tels que le rendu des polygones et le traitement du signal. Dans les dernières générations de GPU , les shaders de pixels peuvent désormais fonctionner comme des processeurs MIMD (maintenant capables de se brancher indépendamment) en utilisant jusqu'à 1 Go de mémoire de texture avec des formats à virgule flottante. Avec une telle puissance, pratiquement tous les algorithmes avec des étapes qui peuvent être exécutées en parallèle, comme la projection de rayons volumiques ou la reconstruction tomographique , peuvent être exécutés avec une accélération considérable. Les shaders de pixels programmables peuvent être utilisés pour simuler des variations des caractéristiques d'éclairage, d'ombre, de réflexion, de couleur émissive, etc. De telles simulations peuvent être écrites en utilisant des langages d'ombrage de haut niveau .

Techniques d'optimisation

L'objectif principal de l'optimisation est de sauter autant de volume que possible. Un ensemble de données médicales typique peut avoir une taille de 1 Go. Pour rendre cela à 30 images / s, il faut un bus mémoire extrêmement rapide. Sauter les voxels signifie que moins d'informations doivent être traitées.

Saut d'espace vide

Souvent, un système de rendu de volume aura un système pour identifier les régions du volume ne contenant aucun matériau visible. Ces informations peuvent être utilisées pour éviter de rendre ces régions transparentes.

Terminaison précoce des rayons

Il s'agit d'une technique utilisée lorsque le volume est rendu de l'avant vers l'arrière. Pour un rayon traversant un pixel, une fois qu'un matériau suffisamment dense a été rencontré, d'autres échantillons n'apporteront aucune contribution significative au pixel et pourront donc être négligés.

Subdivision spatiale Octree et BSP

L'utilisation de structures hiérarchiques telles que l' octree et l' arbre BSP pourrait être très utile à la fois pour la compression des données de volume et l'optimisation de la vitesse du processus de coulée de rayons volumétriques.

Segmentation de volume

La segmentation de volume comprend l'ablation osseuse automatique, telle qu'elle est utilisée dans l'image de droite dans cette angiographie CT .
Segmentation du volume d'un rendu 3D de balayage CT du thorax : La paroi thoracique antérieure, les voies respiratoires et les vaisseaux pulmonaires antérieurs à la racine du poumon ont été numériquement enlevé afin de visualiser le contenu du thorax:
- bleu : artères pulmonaires
- rouge : veines pulmonaires (et aussi la paroi abdominale )
- jaune : le médiastin
- violet : le diaphragme

La segmentation d'image est une procédure manuelle ou automatique qui peut être utilisée pour découper de grandes parties du volume que l'on considère inintéressantes avant le rendu, la quantité de calculs à effectuer par lancer de rayons ou mélange de texture peut être considérablement réduite. Cette réduction peut aller de O (n) à O (log n) pour n voxels indexés séquentiellement. La segmentation de volume présente également des avantages de performances significatifs pour d'autres algorithmes de traçage de rayons . La segmentation de volume peut ensuite être utilisée pour mettre en évidence des structures d'intérêt.

Représentation de résolution multiple et adaptative

En représentant des régions moins intéressantes du volume dans une résolution plus grossière, la surcharge d'entrée de données peut être réduite. En observant de plus près, les données dans ces régions peuvent être remplies soit par lecture à partir de la mémoire ou du disque, soit par interpolation . Le volume de résolution plus grossière est rééchantillonné à une taille plus petite de la même manière qu'une image mipmap 2D est créée à partir de l'original. Ces volumes plus petits sont également utilisés par eux-mêmes lors de la rotation du volume vers une nouvelle orientation.

Rendu de volume pré-intégré

Le rendu de volume pré-intégré est une méthode qui peut réduire les artefacts d'échantillonnage en pré-calculant une grande partie des données requises. Il est particulièrement utile dans les applications à accélération matérielle, car il améliore la qualité sans grand impact sur les performances. Contrairement à la plupart des autres optimisations, cela n'ignore pas les voxels. Au contraire, cela réduit le nombre d'échantillons nécessaires pour afficher avec précision une région de voxels. L'idée est de rendre les intervalles entre les échantillons au lieu des échantillons eux-mêmes. Cette technique capture un matériau en évolution rapide, par exemple la transition du muscle à l'os avec beaucoup moins de calculs.

Maillage basé sur l'image

Le maillage basé sur l'image est le processus automatisé de création de modèles informatiques à partir de données d'images 3D (telles que l' IRM , la tomodensitométrie , la tomodensitométrie industrielle ou la microtomographie ) pour l'analyse et la conception informatiques, par exemple CAO, CFD et FEA.

Réutilisation temporelle des voxels

Pour une vue d'affichage complète, un seul voxel par pixel (celui de l'avant) doit être affiché (bien que d'autres puissent être utilisés pour lisser l'image), si une animation est nécessaire, les voxels avant à afficher peuvent être mis en cache et leur emplacement par rapport à la caméra peut être recalculée au fur et à mesure de son déplacement. Là où les voxels d'affichage deviennent trop éloignés pour couvrir tous les pixels, de nouveaux voxels avant peuvent être trouvés par lancer de rayons ou similaire, et lorsque deux voxels sont dans un pixel, celui avant peut être conservé.

Liste des logiciels associés

Open source
  • 3D Slicer - un logiciel pour la visualisation scientifique et l'analyse d'images
  • ClearVolume - une bibliothèque de visualisation 3D en direct basée sur la diffusion de rayons GPU conçue pour les microscopes à feuille de lumière volumétrique haut de gamme.
  • ParaView - une application multiplateforme d'analyse et de visualisation de données volumineuses. Les utilisateurs de ParaView peuvent rapidement créer des visualisations pour analyser leurs données à l'aide de techniques qualitatives et quantitatives. ParaView est construit sur VTK (ci-dessous).
  • Studierfenster (StudierFenster) - un cadre en ligne gratuit et non commercial Open Science basé sur un client / serveur de traitement d'imagerie médicale (MIP).
  • Vaa3D - une plate-forme de rendu 3D, 4D et 5D de volume et d'analyse d'images pour des gigaoctets et des téraoctets de grandes images (basée sur OpenGL) en particulier dans le domaine des images de microscopie. Également multiplateforme avec les versions Mac, Windows et Linux. Inclut une interface de plugin complète et 100 plugins pour l'analyse d'image. Rendez également plusieurs types d'objets de surface.
  • VisIt - un outil de visualisation parallèle et d'analyse graphique interactif multiplateforme pour visualiser des données scientifiques.
  • Cartographie du volume - un logiciel open source utilisé pour récupérer le Parchemin d'En-Gedi .
  • Voreen - un cadre de développement d'applications rapide multiplateforme pour la visualisation et l'analyse interactives d'ensembles de données volumétriques multimodales. Il fournit des techniques de rendu de volume et d'analyse de données basées sur le GPU
  • VTK - une boîte à outils C ++ à usage général pour le traitement des données, la visualisation, l'interaction 3D, la géométrie de calcul, avec des liaisons Python et Java. En outre, VTK.js fournit une implémentation JavaScript.
Commercial
  • Ambivu 3D Workstation - une station de travail d'imagerie médicale qui offre une gamme de modes de rendu de volume (basés sur OpenGL)
  • Amira - un logiciel de visualisation et d'analyse 3D pour les scientifiques et les chercheurs (en sciences de la vie et biomédical)
  • Imaris - un module logiciel scientifique qui fournit toutes les fonctionnalités nécessaires pour la gestion des données, la visualisation, l'analyse, la segmentation et l'interprétation des ensembles de données de microscopie 3D et 4D
  • MeVisLab - logiciel multiplateforme pour le traitement et la visualisation d'images médicales (basé sur OpenGL et Open Inventor)
  • Open Inventor - une API 3D de haut niveau pour le développement de logiciels graphiques 3D (C ++, .NET, Java)
  • ScanIP - une plate-forme de traitement d'image et de maillage basé sur l'image qui peut rendre les données de numérisation (IRM, CT, Micro-CT ...) en 3D directement après l'importation.
Exemple de cerveau de mouche rendu avec les modèles de surface de ses compartiments à l'aide de Vaa3D
  • tomviz - une plate-forme de visualisation 3D pour les scientifiques et les chercheurs qui peuvent utiliser des scripts Python pour le traitement avancé des données 3D.
  • VoluMedic - un logiciel de tranchage et de rendu de volume

Voir également

Les références

Lectures complémentaires

  • M. Ikits, J. Kniss, A. Lefohn et C. Hansen: Techniques de rendu de volume . Dans: GPU Gems , Chapitre 39 (version en ligne dans la zone développeur de Nvidia).
  • Rendu de volume , didacticiel de base sur le rendu de volume par Ph.D. Ömer Cengiz ÇELEBİ
  • Barthold Lichtenbelt, Randy Crane, Shaz Naqvi, Introduction to Volume Rendering (Hewlett-Packard Professional Books), Hewlett-Packard Company 1998.
  • Peng H., Ruan, Z, Long, F, Simpson, JH, Myers, EW: V3D permet la visualisation 3D en temps réel et l'analyse quantitative d'ensembles de données d'images biologiques à grande échelle. Nature Biotechnology, 2010 doi : 10.1038 / nbt.1612 Rendu en volume de grandes données d'images à haute dimension .
  • Daniel Weiskopf (2006). Techniques de visualisation interactive basées sur GPU . Springer Science & Business Media. ISBN   978-3-540-33263-3 .