Plugin de maillage

Aperçu

Les maillages et les nuages ​​de points sont des types de données importants et puissants pour représenter des formes 3D et largement étudiés dans le domaine de la vision par ordinateur et de l'infographie. Les données 3D deviennent de plus en plus omniprésentes et les chercheurs s'attaquent à de nouveaux problèmes tels que la reconstruction géométrique 3D à partir de données 2D, la segmentation sémantique des nuages ​​de points 3D, l'alignement ou la transformation d'objets 3D, etc. Par conséquent, visualiser les résultats, en particulier pendant la phase de formation, est essentiel pour mieux comprendre les performances du modèle.

Plugin de maillage dans TensorBoard {largeur="100%"}

Ce plugin a pour but d'afficher des nuages ​​de points ou des maillages 3D (nuages ​​de points triangulés) dans TensorBoard. De plus, il permet à l'utilisateur d'interagir avec les objets rendus.

API de résumé

Un maillage ou un nuage de points peut être représenté par un ensemble de tenseurs. Par exemple, on peut voir un nuage de points comme un ensemble de coordonnées 3D des points et des couleurs associées à chaque point.

from tensorboard.plugins.mesh import summary as mesh_summary
...

point_cloud = tf.constant([[[0.19, 0.78, 0.02], ...]], shape=[1, 1064, 3])
point_colors = tf.constant([[[128, 104, 227], ...]], shape=[1, 1064, 3])

summary = mesh_summary.op('point_cloud', vertices=point_cloud, colors=point_colors)

REMARQUE Le tenseur colors est facultatif dans ce cas mais peut être utile pour montrer différentes sémantiques des points.

Le plugin ne prend actuellement en charge que les maillages triangulaires qui diffèrent des nuages ​​de points ci-dessus uniquement par la présence de faces - ensemble de sommets représentant le triangle sur le maillage.

mesh = tf.constant([[[0.19, 0.78, 0.02], ...]], shape=[1, 1064, 3])
colors = tf.constant([[[128, 104, 227], ...]], shape=[1, 1064, 3])
faces = tf.constant([[[13, 78, 54], ...]], shape=[1, 752, 3])

summary = mesh_summary.op('mesh', vertices=mesh, colors=colors, faces=faces)

Seul le tenseur colors est facultatif pour les résumés de maillage.

Configuration de la scène

La manière dont les objets seront affichés dépend également de la configuration de la scène, c'est-à-dire l'intensité et la couleur des sources lumineuses, le matériau des objets, les modèles de caméra, etc. Tout cela peut être configuré via un paramètre supplémentaire config_dict . Ce dictionnaire peut contenir trois clés de haut niveau : camera , lights et material . Chaque clé doit également être un dictionnaire avec une clé obligatoire cls , représentant un nom de classe THREE.js valide.

camera_config = {'cls': 'PerspectiveCamera'}
summary = mesh_summary.op(
    "mesh",
    vertices=mesh,
    colors=colors,
    faces=faces,
    config_dict={"camera": camera_config},
)

camera_config de l'extrait ci-dessus peut être développé selon la documentation THREE.js . Toutes les clés de camera_config seront transmises à une classe portant le nom camera_config.cls . Par exemple (basé sur la documentation PerspectiveCamera ) :

camera_config = {
  'cls': 'PerspectiveCamera',
  'fov': 75,
  'aspect': 0.9,
}
...

Gardez à l'esprit que la configuration de la scène n'est pas une variable entraînable (c'est-à-dire statique) et ne doit être fournie que lors de la création des résumés.

Comment installer

Actuellement, le plugin fait partie de la version nocturne de TensorBoard, vous devez donc l'installer avant d'utiliser le plugin.

Colab

pip install -q -U tb-nightly

Chargez ensuite l'extension Tensorboard et exécutez-la, de la même manière que vous le feriez dans le terminal :

%load_ext tensorboard
%tensorboard --logdir=/path/to/logs

Veuillez consulter l' exemple de notebook Colab pour plus de détails.

Terminal

Si vous souhaitez exécuter la version nocturne de TensorBoard localement, vous devez d'abord l'installer :

pip install tf-nightly

Ensuite, exécutez-le :

tensorboard --logdir path/to/logs