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.
{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