ScanNet 数据集处理(一)

最近在做毕业设计,课题研究对象就是ScanNet数据集Scannet主页,所以也学到了一些处理点云的方法。在这里记录一下。

数据集简介

下载完数据集后,内部结果如下所示,每一个场景一个文件夹。

<scanId>
|-- <scanId>_vh_clean.ply
    (Updated if had remove annotations)
|-- <scanId>_vh_clean_2.ply
    (Updated if had remove annotations)
|-- <scanId>.aggregation.json, <scanId>_vh_clean.aggregation.json
    Updated aggregated instance-level semantic annotations on lo-res, hi-res meshes, respectively
|-- <scanId>_vh_clean_2.labels.ply
    Updated visualization of aggregated semantic segmentation; colored by nyu40 labels (see legend referenced above; ply property 'label' denotes the ScanNet label id)
|-- <scanId>_2d-label.zip
    Updated raw 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids
|-- <scanId>_2d-instance.zip
    Updated raw 2d projections of aggregated annotation instances as 8-bit pngs
|-- <scanId>_2d-label-filt.zip
    Updated filtered 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids
|-- <scanId>_2d-instance-filt.zip
    Updated filtered 2d projections of aggregated annotation instances as 8-bit pngs

如下图所示:

其中scene0000_00_vh_clean.plyscene0000_00_vh_clean_2.ply都是点云图像的ply文件(两者清晰度不同),可以直接用meshlab打开,也可用open3d绘制。但是可以看出,整幅点云图像对于坐标轴原点来讲是有偏移的

在这里插入图片描述

scene0000_00_vh_clean_2.labels.ply是带标签的点云,是分隔之后的结果。
在这里插入图片描述

可以看出,以上3幅图对于远点都是有偏移的。那么如何处理便宜呢?

3D点云处理偏移

在文件夹下,有一个scene0000_00.txt文件,第一行axisAlignment就是坐标偏移。

点的处理偏移

if __name__ == '__main__':
    # 1. 得到 ply 文件,分别得到 x, y, z, r, g, b
    filename = os.path.join(ROOT, "scene0000_00_vh_clean_2.ply")
    with open(filename, 'rb') as f:
        plydata = PlyData.read(f)
        num_verts = plydata['vertex'].count
        vertices = np.zeros(shape=[num_verts, 6], dtype=np.float32)
        vertices[:, 0] = plydata['vertex'].data['x']
        vertices[:, 1] = plydata['vertex'].data['y']
        vertices[:, 2] = plydata['vertex'].data['z']
        vertices[:, 3] = plydata['vertex'].data['red']
        vertices[:, 4] = plydata['vertex'].data['green']
        vertices[:, 5] = plydata['vertex'].data['blue']

    # 2. 得到偏移
    meta_file = os.path.join(ROOT, "scene0000_00.txt")
    lines = open(meta_file).readlines()
    axis_align_matrix = None
    for line 
  • 14
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
Scannet数据集是一个开放源代码的大规模点云数据集,其中包含了来自真实世界场景的三维扫描数据。该数据集由斯坦福大学计算机视觉实验室(Stanford Computer Vision Lab)和普林斯顿大学计算机科学系(Princeton University Computer Science Department)合作创建,并且包含了超过1,500个场景的点云数据。 Scannet数据集的主要目的是为了促进三维场景理解和计算机视觉相关研究的发展。这些点云数据通过使用RGB-D传感器进行扫描,可以捕捉到场景的几何形状和纹理信息。数据集中的点云数据非常丰富,包含了大量的几何信息,能够有效地支持相关研究领域,如SLAM(Simultaneous Localization and Mapping)、3D重建和物体识别等。 Scannet数据集的点云数据以.json格式提供,每个场景的点云数据包含了点的坐标、法线、颜色等信息。此外,Scannet数据集还提供了丰富的注释信息,包括场景的语义分割标签和实例分割标签,这对于研究场景理解和语义重建非常有帮助。 研究人员可以使用Scannet数据集来训练和评估各种三维场景理解算法,如点云分类、场景分割和目标检测等。此外,由于Scannet数据集是一个开放源代码的数据集,任何人都可以免费访问和使用,这对于推动研究社区的合作和创新非常有价值。 总之,Scannet数据集是一个大规模点云数据集,包含了真实世界场景的三维扫描数据,可以用于促进三维场景理解和计算机视觉相关研究的发展。通过使用Scannet数据集,研究人员可以训练和评估各种三维场景理解算法,推动研究社区的合作和创新。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值