tensorboard可视化点云
tensorboard可视化点云
- 用 tensorboard 自带的 add_mesh 方法:支持可视化点云和网格,参考链接:
- 用 open3d 和 tensorboard 连用的方法,支持丰富,但是好像还需要摸索一下,挖个坑,后面详细讨论
但是可视化点云倒是还有其他方法,例如:matplotlib画三维散点图
因为我在服务器上没有可视化界面,所以想着能不能用tensorboard上使用
add_mesh方法
add_mesh(tag, vertices, colors=None, faces=None, config_dict=None, global_step=None, walltime=None)
基于Three.js在tensorboard中实现可视化效果,支持point cloud和mesh两种,并且因为是Three.js,所以支持与用户交互,也像使用Three.js一样配置相关的参数:相机参数,光照条件等。可以参照three.js docs网页进行配置。
Parameters:
- tag(string):数据标识,用于显示本可视化内容的标签
- vertices(torch.Tensor) -所有顶点的 3D 坐标。(B,N,3). (batch, number_of_vertices, channels)
- colors(torch.Tensor) -每个顶点的颜色。(可选)(B,N,3). The values should lie in [0, 255] for type uint8 or [0, 1] for type float.
- faces(torch.Tensor) -每个mesh三角形内的顶点索引。 (可选的) (B,N,3). The values should lie in [0, number_of_vertices] for type uint8.
- config_dict-带有Three.js类名称和配置的字典。
- global_step(int) - Global step value to record 在训练过程中使用,标记进度
- walltime(float) - Optional override default walltime (time.time()) seconds after epoch of event (一般不用)
import torch
from torch.utils.tensorboard import SummaryWriter
import open3d as o3d
import numpy as np
# get point cloud data
point_cloud_path = '/3DMatch_train/7-scenes-chess/01_Data/cloud_bin_0.ply'
point_cloud = o3d.io.read_point_cloud(point_cloud_path) # 读取点云数据
points = torch.tensor(np.asarray(point_cloud.points)) # 转换为tensor
print(points.shape)
writer = SummaryWriter()
# visualize the point cloud
writer.add_mesh('my_pcd', vertices=points.unsqueeze(0))
效果:
open3d和tensorboard连用
但是我用不了,在服务器上的tensorboard显示不出来open3d的tensorboard插件,可能我安装的有问题
一个小例子,可视化一些简单mesh:因为如上原因没有深究了
import open3d as o3d
# Monkey-patch torch.utils.tensorboard.SummaryWriter
from open3d.visualization.tensorboard_plugin import summary
# Utility function to convert Open3D geometry to a dictionary format
from open3d.visualization.tensorboard_plugin.util import to_dict_batch
from torch.utils.tensorboard import SummaryWriter
cube = o3d.geometry.TriangleMesh.create_box(1, 2, 4)
cube.compute_vertex_normals()
cylinder = o3d.geometry.TriangleMesh.create_cylinder(radius=1.0,
height=2.0,
resolution=20,
split=4)
cylinder.compute_vertex_normals()
colors = [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0)]
logdir = "demo_logs/pytorch/small_scale"
writer = SummaryWriter(logdir)
for step in range(3):
cube.paint_uniform_color(colors[step])
writer.add_3d('cube', to_dict_batch([cube]), step=step)
cylinder.paint_uniform_color(colors[step])
writer.add_3d('cylinder', to_dict_batch([cylinder]), step=step)
tensorboard可视化点云的更多相关文章
- Tensorflow学习笔记3:TensorBoard可视化学习
TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, Tenso ...
- 学习TensorFlow,TensorBoard可视化网络结构和参数
在学习深度网络框架的过程中,我们发现一个问题,就是如何输出各层网络参数,用于更好地理解,调试和优化网络?针对这个问题,TensorFlow开发了一个特别有用的可视化工具包:TensorBoard,既可 ...
- 数据可视化——阿里云解决方案DataV
数据可视化——阿里云解决方案DataV https://help.aliyun.com/document_detail/53844.html?spm=a2c4g.11186623.6.579.37fd ...
- tensorboard可视化节点却没有显示图像的解决方法---注意路径问题加中文文件名
问题:完成graph中的算子,并执行tf.Session后,用tensorboard可视化节点时,没有显示图像 1. tensorboard 1.10 我是将log文件存储在E盘下面的,所以直接在E盘 ...
- 在Keras中使用tensorboard可视化acc等曲线
1.使用tensorboard可视化ACC,loss等曲线 keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq= 0 , wri ...
- PCL+Qt+VS可视化点云
前言 Point Cloud Library (PCL)是一个功能强大的开源C++库,假设可以使用好PCL将会对我们在LiDAR数据处理领域的研究产生巨大帮助.LiDAR技术经过几十年的发展.眼下国内 ...
- 超简单tensorflow入门优化程序&&tensorboard可视化
程序1 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. 使用tensorflow编程实现: #-*- coding: utf-8 -*-) im ...
- 使用TensorBoard可视化工具
title: 使用TensorBoard可视化工具 date: 2018-04-01 13:04:00 categories: deep learning tags: TensorFlow Tenso ...
- 利用tensorboard可视化checkpoint模型文件参数分布
写在前面: 上周微调一个文本检测模型seglink,将特征提取层进行冻结,只训练分类回归层,然而查看tensorboard发现里面有histogram显示模型各个参数分布,看了目前这个训练模型参数分布 ...
- 【猫狗数据集】利用tensorboard可视化训练和测试过程
数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...
随机推荐
- 编译器性能调优:使用C++11实现高效编译器
目录 1. 引言 2. 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍 <编译器性能调优:使用C++11实现高效编译器> 编译器是计算机程序的入口点,将源代码转换为可执行文 ...
- Taurus .Net Core 微服务开源框架:Admin 插件【1】 - 微服务节点管理
前言: 最近发现 NetCore 的文章有点少,特来补几篇. 上一篇:Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效. 自上篇之后,期间更新了4个小版本, ...
- Dapr 发布模糊测试报告|Dapr 完成模糊测试审核
Dapr 团队最近在博客上发布了 Dapr 完成模糊测试审核[1]的文章,该审计是 CNCF 通过模糊测试改善[2]开源云原生项目安全状况的计划的一部分.该审计由 Ada Logics[3] 于 20 ...
- iOS select标签适配去掉iOS默认select样式
iOS端对select标签有独特的适配,如何取消这些默认样式呢 css样式表 加上 1 select { 2 -webkit-appearance: none; 3 } 博客同步更新:地址
- LeetCode 周赛 352(2023/07/02)一场关于子数组的专题周赛
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 往期回顾:LeetCode 单周赛第 350 场 · 滑动窗口与离 ...
- 如何在docker中创建postgresql数据库并使用prisma进行连接
在docker中创建postgresql # docker 创建 postgres docker pull postgres # 创建容器 # ~/study/db/postgres 是本地的文件映射 ...
- sharding-jdbc分库连接数优化
一.背景: 配运平台组的快递订单履约中心(cp-eofc)及物流平台履约中心(jdl-uep-ofc)系统都使用了ShardingSphere生态的sharding-jdbc作为分库分表中间件, 整个 ...
- 用googletest写cpp单测
框架概述 Google Test(也称为 googletest)是由 Google 开发的 C++ 单元测试框架.它的首个版本是在2004年发布的,作为 Google 内部的测试框架使用.随后,Goo ...
- Composer 镜像原理 (3) —— 完结篇
相关文章 Composer 镜像原理 (1) -- 初识 Composer Composer 镜像原理 (2) -- composer.json Composer 镜像原理 (3) -- 完结篇 上一 ...
- 2023-07-13 C#深拷贝功能以及推荐使用方式
C#深拷贝功能以及推荐使用方式 [作者]长生 深拷贝 深拷贝是用于在对引用对象进行复制时的一种操作方式.平常我们新建一个对象,然后直接赋值,只是对地址引用的赋值,在修改新建的对象时,也会对我们复制的对 ...