欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > 使用SwanLab记录3D点云:swanlab.Obejct3D使用指引

使用SwanLab记录3D点云:swanlab.Obejct3D使用指引

2025/3/24 11:03:06 来源:https://blog.csdn.net/SoulmateY/article/details/146446367  浏览:    关键词:使用SwanLab记录3D点云:swanlab.Obejct3D使用指引

Github源代码

参数描述
data(Union[np.ndarray, str, Path]) 接收点云文件路径、numpy数组。Object3D类将判断接收的数据类型做相应的转换。
caption(str) 3D对象的标签。用于在实验看板中展示3D对象时进行标记。

介绍

对各种类型的点云数据做转换,以被swanlab.log()记录。

在这里插入图片描述

从文件/字典创建

::: warning 示例文件
data.swanlab.pts.json:Google Drive下载
:::

文件的格式为json,内容格式如下:

{"points": [[x1, y1, z1, r1, g1, b1],[x2, y2, z2, r2, g2, b2],...],// (可选)检测框,用于点云检测等任务,会框住对应位置"boxes": [{"color": [r, g, b],"corners": [[x1,y1,z1], ..., [x8,y8,z8]],// (可选)检测框的标签文本,会在视图中显示"label": "class_name",// (可选)置信度,会在视图中显示"score": 0.95,},...]
}

json文件参数详细解释:

  • points

    • 这是一个数组,用于存储3D点云数据。
    • 每个元素都是一个包含6个数值的数组 [x, y, z, r, g, b],分别代表:
      • x, y, z:点的三维坐标。
      • r, g, b:点的颜色,分别代表红、绿、蓝三个通道的数值,通常取值范围为0-255。
  • boxes(可选):

    • 这是一个数组,用于存储3D检测框数据。
    • 每个元素都是一个对象,代表一个检测框,包含以下字段:
      • color:检测框的颜色,[r, g, b] 数组,代表红、绿、蓝三个通道的数值。
      • corners:检测框的八个顶点坐标,[[x1, y1, z1], ..., [x8, y8, z8]] 数组,每个元素是一个三维坐标 [x, y, z]
      • label(可选):检测框的标签文本,字符串类型,用于在视图中显示检测框的类别。
      • score(可选):检测框的置信度,数值类型,通常取值范围为0-1,用于表示检测框的可靠程度。

使用SwanLab从json文件中记录3D点云数据:

::: code-group

import swanlabswanlab.init()obj = swanlab.Object3D("data.swanlab.pts.json", caption="3d_point_cloud")
swanlab.log({"examples": obj})
import swanlabswanlab.init()with open("data.swanlab.pts.json", "r") as f:cloud_point = json.load(f)obj = swanlab.Object3D.from_point_data(points=cloud_point["points"],boxes=cloud_point["boxes"],caption="3d_point_cloud"
)swanlab.log({"examples": obj})

:::

从numpy数组创建

从坐标创建:

import numpy as np# Example 1: Create point cloud from coordinates
points_xyz = np.array([[0, 0, 0],  # Point1: x=0, y=0, z=0[1, 1, 1],  # Point2: x=1, y=1, z=1[2, 0, 1]   # Point3: x=2, y=0, z=1
])cloud_xyz = swanlab.Object3D(points_xyz, caption="Basic XYZ Points")
swanlab.log({"examples": cloud_xyz})

从坐标和类别创建:

import numpy as np# Example 2: Create point cloud with categories
points_xyzc = np.array([[0, 0, 0, 0],  # Point1: xyz + category 0[1, 1, 1, 1],  # Point2: xyz + category 1[2, 0, 1, 2]   # Point3: xyz + category 2
])cloud_xyzc = swanlab.Object3D(points_xyzc, caption="Points with Categories")
swanlab.log({"examples": cloud_xyzc})

从坐标和RGB创建:

import numpy as np# Example 3: Create point cloud with RGB colors
points_xyzrgb = np.array([[0, 0, 0, 255, 0, 0],    # Point1: xyz + red[1, 1, 1, 0, 255, 0],    # Point2: xyz + green[2, 0, 1, 0, 0, 255]     # Point3: xyz + blue
])cloud_xyzrgb = swanlab.Object3D(points_xyzrgb, caption="Colored Points")
swanlab.log({"examples": cloud_xyzrgb})

:::

单步记录多个点云

import swanlab...cloud1 = swanlab.Object3D(points1, caption="cloud1")
cloud2 = swanlab.Object3D(points2, caption="cloud2")
cloud3 = swanlab.Object3D(points3, caption="cloud3")...swanlab.log({"examples": [cloud1, cloud2, cloud3, ...]})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词