Plug-in Mesh

Panoramica

Le mesh e le nuvole di punti sono tipi di dati importanti e potenti per rappresentare forme 3D e ampiamente studiati nel campo della visione artificiale e della computer grafica. I dati 3D stanno diventando sempre più onnipresenti e i ricercatori affrontano nuovi problemi come la ricostruzione della geometria 3D da dati 2D, la segmentazione semantica della nuvola di punti 3D, l'allineamento o il morphing di oggetti 3D e così via. Pertanto, visualizzare i risultati, soprattutto durante la fase di training, è fondamentale per comprendere meglio le prestazioni del modello.

Plug-in mesh in TensorBoard {larghezza="100%"}

Questo plugin intende visualizzare nuvole di punti o mesh 3D (nuvole di punti triangolati) in TensorBoard. Inoltre, consente all'utente di interagire con gli oggetti renderizzati.

API di riepilogo

Sia una mesh che una nuvola di punti possono essere rappresentati da un insieme di tensori. Ad esempio, è possibile vedere una nuvola di punti come un insieme di coordinate 3D dei punti e alcuni colori associati a ciascun punto.

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)

NOTA il tensore colors in questo caso è facoltativo ma può essere utile per mostrare una semantica diversa dei punti.

Il plugin attualmente supporta solo mesh triangolari che differiscono dalle nuvole di punti sopra solo per la presenza di facce - insieme di vertici che rappresentano il triangolo sulla mesh.

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)

Solo il tensore colors è facoltativo per i riepiloghi mesh.

Configurazione della scena

Il modo in cui verranno visualizzati gli oggetti dipende anche dalla configurazione della scena, cioè dall'intensità e dal colore delle sorgenti luminose, dal materiale degli oggetti, dai modelli di fotocamera e così via. Tutto ciò può essere configurato tramite un parametro aggiuntivo config_dict . Questo dizionario può contenere tre chiavi di alto livello: camera , lights e material . Ogni chiave deve anche essere un dizionario con la chiave obbligatoria cls , che rappresenta il nome della classe THREE.js valido.

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

camera_config dallo snippet sopra può essere espanso in base alla documentazione THREE.js . Tutte le chiavi di camera_config verranno passate a una classe con il nome camera_config.cls . Ad esempio (basato sulla documentazione PerspectiveCamera ):

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

Tieni presente che la configurazione della scena non è una variabile addestrabile (cioè statica) e dovrebbe essere fornita solo durante la creazione dei riepiloghi.

Come installare

Attualmente il plugin fa parte della build notturna di TensorBoard, pertanto è necessario installarlo prima di utilizzare il plugin.

Colab

pip install -q -U tb-nightly

Quindi carica l'estensione Tensorboard ed eseguila, in modo simile a come lo faresti nel Terminale:

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

Per ulteriori dettagli, consultare l' esempio del notebook Colab .

terminale

Se desideri eseguire TensorBoard nightly build localmente, devi prima installarlo:

pip install tf-nightly

Quindi eseguilo semplicemente:

tensorboard --logdir path/to/logs