Complemento de malla

Descripción general

Las mallas y las nubes de puntos son tipos de datos importantes y poderosos para representar formas 3D y ampliamente estudiados en el campo de la visión por computadora y los gráficos por computadora. Los datos 3D son cada vez más omnipresentes y los investigadores desafían nuevos problemas como la reconstrucción de la geometría 3D a partir de datos 2D, la segmentación semántica de nubes de puntos 3D, la alineación o transformación de objetos 3D, etc. Por lo tanto, visualizar los resultados, especialmente durante la etapa de entrenamiento, es fundamental para comprender mejor cómo funciona el modelo.

Complemento de malla en TensorBoard {ancho="100%"}

Este complemento tiene como objetivo mostrar nubes de puntos o mallas 3D (nubes de puntos trianguladas) en TensorBoard. Además, permite al usuario interactuar con los objetos renderizados.

API de resumen

Tanto una malla como una nube de puntos se pueden representar mediante un conjunto de tensores. Por ejemplo, se puede ver una nube de puntos como un conjunto de coordenadas 3D de los puntos y algunos colores asociados con cada 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 El tensor colors es opcional en este caso, pero puede resultar útil para mostrar diferentes semánticas de los puntos.

Actualmente, el complemento solo admite mallas triangulares que se diferencian de las nubes de puntos anteriores solo por la presencia de caras: un conjunto de vértices que representan el triángulo en la malla.

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)

Sólo el tensor colors es opcional para los resúmenes de malla.

Configuración de escena

La forma en que se mostrarán los objetos también depende de la configuración de la escena, es decir, la intensidad y el color de las fuentes de luz, el material de los objetos, los modelos de cámara, etc. Todo eso se puede configurar mediante un parámetro adicional config_dict . Este diccionario puede contener tres claves de alto nivel: camera , lights y material . Cada clave también debe ser un diccionario con la clave obligatoria cls , que representa el nombre de clase THREE.js válido.

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

camera_config del fragmento anterior se puede ampliar de acuerdo con la documentación de THREE.js . Todas las claves de camera_config se pasarán a una clase con el nombre camera_config.cls . Por ejemplo (basado en la documentación PerspectiveCamera ):

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

Tenga en cuenta que la configuración de la escena no es una variable entrenable (es decir, estática) y debe proporcionarse únicamente durante la creación de resúmenes.

Cómo instalar

Actualmente, el complemento es parte de la compilación nocturna de TensorBoard, por lo tanto, debe instalarlo antes de usarlo.

colaboración

pip install -q -U tb-nightly

Luego cargue la extensión Tensorboard y ejecútela, de manera similar a como lo haría en la Terminal:

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

Consulte el cuaderno de ejemplo de Colab para obtener más detalles.

Terminal

Si desea ejecutar la compilación nocturna de TensorBoard localmente, primero debe instalarlo:

pip install tf-nightly

Entonces simplemente ejecútalo:

tensorboard --logdir path/to/logs