解决:为何S3DIS数据集Area5中beam类iou一直为0.

问题

前段时间一直被困扰,为何beam类的结果这么差,还以为代码出了问题:

在这里插入图片描述

发现

后来在CBL论文里也发现了这个问题:
Area5结果
6折交叉验证结果

解谜

感觉应该是Area5 中beam的样本太少了,于是就去Area5 里查了一下,结果就是这样子:
首先看了正常样本(table为例):
在这里插入图片描述
发现有154个文件用来标注,每个文件里有3000~46000个语义为桌子的点。
接下来再看看beam:
在这里插入图片描述
发现一共只有3个文件,总计加起来只有9497+9520+3410 = 22472个类别为beam的点。

定论

### 数据集预处理流程 在OneFormer3D框架中使用S3DIS数据集进行实例分割任务时,需要对原始数据进行一系列预处理步骤,以确保其格式与模型输入要求相匹配。以下是具体的预处理方法和文件组织方式: #### 文件结构与目录组织 S3DIS数据集通常包含多个房间的点云数据及其对应的语义和实例标签。为了适配OneFormer3D框架,需将数据整理为特定的目录结构。标准的S3DIS数据集经过预处理后应包含以下主要子目录和文件: - `points`: 存储每个房间的点云坐标、颜色等信息(如`.txt`或`.npy`格式)。 - `instance_mask`: 保存每个点的实例标签(如`.txt`或`.npy`格式)。 - `semantic_mask`: 保存每个点的语义别标签(如`.txt`或`.npy`格式)。 - `super_points`: 超点信息,用于加速训练过程。 - `seg_info`: 包含训练过程中所需的辅助信息,例如权重、重采样索引等。 这些文件的命名规则通常基于房间名称,例如`Area_1_office_1.bin`表示某个区域的办公室场景点云数据[^2]。 #### 点云数据转换 原始S3DIS数据通常以`.txt`格式存储,每一行包含一个点的坐标(x, y, z)、颜色(r, g, b)以及语义和实例标签。为了将其转换为适合OneFormer3D使用的格式,可以编写Python脚本将这些文本文件转换为二进制格式(如`.bin`),并同时生成对应的语义和实例掩码文件。示例代码如下: ```python import numpy as np def convert_txt_to_bin(txt_file, bin_file, semantic_file, instance_file): data = np.loadtxt(txt_file) points = data[:, :6] # x, y, z, r, g, b semantic_labels = data[:, 6].astype(np.int32) instance_labels = data[:, 7].astype(np.int32) # 保存点云数据为 .bin 格式 points.tofile(bin_file) # 保存语义和实例标签 np.save(semantic_file, semantic_labels) np.save(instance_file, instance_labels) # 示例调用 convert_txt_to_bin('Area_1_office_1.txt', 'points/Area_1_office_1.bin', 'semantic_mask/Area_1_office_1.npy', 'instance_mask/Area_1_office_1.npy') ``` 该脚本读取原始文本文件,并将点云坐标、颜色等信息写入`.bin`文件,同时将语义和实例标签分别保存为`.npy`文件[^2]。 #### 元数据生成 完成点云数据的转换后,下一步是生成训练所需的信息文件(如`*.pkl`)。这些文件通常包含所有样本的路径、别分布、实例数量等元信息。OneFormer3D提供了一个工具脚本`create_data.py`,可用于自动生成这些文件。执行命令如下: ```bash python tools/create_data.py s3dis --root-path ./data/s3dis --out-dir ./data/s3dis --extra-tag s3dis ``` 此命令会根据指定的数据路径生成训练、验证和测试集的信息文件,如`s3dis_infos_train.pkl`、`s3dis_infos_val.pkl`等。这些文件在训练过程中被用于快速加载数据并计算损失函数所需的权重[^2]。 #### 数据增强与划分 在训练阶段,通常会对点云数据进行随机采样、旋转和平移等增强操作,以提高模型的泛化能力。OneFormer3D支持多种数据增强策略,用户可以通过配置文件启用相应的选项。此外,S3DIS数据集通常按区域划分(如Area_1至Area_6),其中5个区域用于训练,1个区域用于验证。这种划分方式有助于评估模型在不同场景下的表现。 #### 模型训练与评估 完成上述预处理步骤后,即可使用OneFormer3D框架进行实例分割任务。训练命令通常如下所示: ```bash python train.py --config configs/s3dis.yaml ``` 配置文件中定义了网络结构、优化器参数、数据加载器设置等内容。在训练过程中,模型会从预处理后的点云数据中学习特征,并预测每个点的语义别和实例ID。最终的评估指标包括mAP(平均精度)和IoU(交并比),用于衡量模型在实例分割任务中的性能[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值