Обзор
Сетки и облака точек являются важными и мощными типами данных для представления трехмерных фигур и широко изучаются в области компьютерного зрения и компьютерной графики. 3D-данные становятся все более повсеместными, и исследователи сталкиваются с новыми проблемами, такими как реконструкция 3D-геометрии на основе 2D-данных, семантическая сегментация 3D-облака точек, выравнивание или морфирование 3D-объектов и так далее. Поэтому визуализация результатов, особенно на этапе обучения, имеет решающее значение для лучшего понимания того, как работает модель.
{ширина="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