Плагин сетки

Обзор

Сетки и облака точек являются важными и мощными типами данных для представления трехмерных фигур и широко изучаются в области компьютерного зрения и компьютерной графики. 3D-данные становятся все более повсеместными, и исследователи сталкиваются с новыми проблемами, такими как реконструкция 3D-геометрии на основе 2D-данных, семантическая сегментация 3D-облака точек, выравнивание или морфирование 3D-объектов и так далее. Поэтому визуализация результатов, особенно на этапе обучения, имеет решающее значение для лучшего понимания того, как работает модель.

Плагин Mesh в TensorBoard {ширина="100%"}

Этот плагин предназначен для отображения 3D-облаков точек или сеток (триангулированных облаков точек) в TensorBoard. Кроме того, он позволяет пользователю взаимодействовать с визуализированными объектами.

Сводный API

Либо сетка, либо облако точек могут быть представлены набором тензоров. Например, облако точек можно рассматривать как набор трехмерных координат точек и некоторых цветов, связанных с каждой точкой.

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)

ПРИМЕЧАНИЕ. В этом случае тензор colors не является обязательным, но может быть полезен для отображения различной семантики точек.

В настоящее время плагин поддерживает только треугольные сетки, которые отличаются от приведенных выше облаков точек только наличием граней — набора вершин, представляющих треугольник на сетке.

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)

Для сводок сетки необязателен только тензор colors .

Конфигурация сцены

Способ отображения объектов также зависит от конфигурации сцены, т.е. интенсивности и цвета источников света, материала объектов, модели камеры и т.д. Все это можно настроить с помощью дополнительного параметра config_dict . Этот словарь может содержать три ключа высокого уровня: camera , lights и material . Каждый ключ также должен быть словарем с обязательным ключом cls , представляющим допустимое имя класса THREE.js .

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

camera_config из фрагмента выше можно расширить согласно документации THREE.js . Все ключи из camera_config будут переданы в класс с именем camera_config.cls . Например (на основе документации PerspectiveCamera ):

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

Имейте в виду, что конфигурация сцены не является обучаемой переменной (то есть статической) и должна предоставляться только во время создания сводок.

Как установить

В настоящее время плагин является частью ночной сборки TensorBoard, поэтому вам необходимо установить его перед использованием плагина.

Колаб

pip install -q -U tb-nightly

Затем загрузите расширение Tensorboard и запустите его, аналогично тому, как вы это делаете в Терминале:

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

Для получения более подробной информации обратитесь к примеру блокнота Colab .

Терминал

Если вы хотите запустить ночную сборку TensorBoard локально, сначала вам необходимо ее установить:

pip install tf-nightly

Затем просто запустите его:

tensorboard --logdir path/to/logs