概览
网格和点云是表示 3D 形状的重要且强大的数据类型,在计算机视觉和计算机图形学领域得到了广泛的研究。3D 数据变得越来越普遍,研究人员面临着新的挑战,如从 2D 数据中进行 3D 几何重建、3D 点云语义分割、对齐或变形 3D 对象等。因此,可视化结果(尤其是在训练阶段)对于更好地了解模型的执行方式至关重要。
{width="100%"}
此插件旨在在 TensorBoard 中显示 3D 点云或网格(三角剖分点云)。此外,它允许用户与渲染对象进行交互。
摘要 API
网格或点云都可以用一组张量表示。例如,可以将点云视为点 3D 坐标的集合,以及与每个点关联的一些颜色。
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
。每个键还必须是一个字典,其中包含表示有效的 THREE.js 类名称的强制键 cls
。
camera_config = {'cls': 'PerspectiveCamera'}
summary = mesh_summary.op(
"mesh",
vertices=mesh,
colors=colors,
faces=faces,
config_dict={"camera": camera_config},
)
可以根据 THREE.js 文档扩展上述代码段中的 camera_config
。来自 camera_config
的所有键将传递给名称为 camera_config.cls
的类。例如(基于 PerspectiveCamera
文档)
camera_config = {
'cls': 'PerspectiveCamera',
'fov': 75,
'aspect': 0.9,
}
...
请注意,场景配置不是可训练变量(即静态),并且应该仅在创建摘要期间提供。
如何安装
目前该插件是 TensorBoard 夜间构建的一部分,因此在使用该插件之前必须先安装它。
Colab
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