点云数据增强及预处理

数据增强:

1. random world flip:沿着x或者y轴,翻转点云
点云的x或者y,要翻转
3d box中心的x或者y,要翻转
3d box的朝向要翻转
point segmentation label,点云的相对顺序没有发生变化

2. random_world_rotation:沿着点云原点,旋转点云
点,x,y,绕z轴旋转
3d box,绕z轴旋转,中心和朝向都要变化
point segmentation label,点云的相对顺序没有发生变化

3. random_world_scaling:沿着点云原点,缩放点云
点云,x,y,z 缩放
3d box,缩放,中心和尺寸都要变化
point segmentation label,点云的相对顺序没有发生变化

4. random_world_translation: 沿着x,y,z,轴线平移点云
点云的x,y,z,要平移
3d box的中心,沿着x,y,z,要平移
point segmentation label,点云的相对顺序没有发生变化

5. database sampler
从所有的scene中,采样得到目标识别的3d box和points. 然后把这些box放回到训练的frame中。
a. 确保采样的box,和当前帧的box IOU = 0
b. 确保采样的box之间,IOU = 0
c. 在放置采样box的时候,需要提前删除掉box所在位置的原先的点
d. 把采样box的点,放回到scene中

如上的处理,可能会把box放在不合理的位置(虽然大部分是合理的);会破坏原有的points;会新增points;
需要如下条件:
a. 把database sampler放在roadplane上
b. database的采样的时候,points中带seg的标签

从这一点出发,我觉得,应该把points和points label存到一起!!!

其他新增的数据增强方式
local rotation
local translation
local scaling

如上的local方式,针对每一个3d box筛选出对应的points,然后针对这些points和box,围绕box的局部坐标系进行变换。针对挨着很近的box,可能会存在重叠等问题,而且semantic label也会不准确。所以这里针对语义分割就不用了。

点的特征:

point feature encoding, 这里没有特殊操作,可以通过这个config,筛选输入到后面的点云特征
x,y,z,intensity,enlongation,instance, seg class,timestamp

预处理:

1. mask points out of range
预设好预测范围,voxel尺寸,进行voxel之后,grid size是固定的。这一步把范围外的点去掉。

需要对seg label,进行同样的操作。

在training,问题不大,因为loss的计算都是在范围内的voxel的label来算的。
在validation时,也要对真值进行这个操作,而且要保证point的label的次序一样。

2. shuffule points
打乱points的相对顺序。
需要对seg labels进行同样的操作。

3. transform points to voxel
划分voxel
得到voxel中点的index,点对应的voxel coordinate
通过voxel中点的seg label,得到这个voxel的seg label
在validation和test的时候,把voxel的seg label,映射成voxel中点的label,用于结果的输出和iou的计算

关于点云的处理:解析waymo数据集的时候,把seg_label作为点的一个feature,合并到pointcloud中,不用单独分开为一个label文件。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据处理是一个涉及到三维数据的处理方法,可以用来分析和处理三维空间中的点数据。点数据是由大量的三维坐标点组成的数据集合,常见的应用包括3D建模、遥感图像处理、机器人导航等。 在进行点数据处理时,可以使用C语言来编写代码实现相应的功能。C语言是一种底层语言,具有高效、灵活和可移植性的特点,非常适合用于点数据处理。 点数据处理的C代码可以包括以下内容: 1. 数据输入和输出:通过读取点数据的文件,将数据导入到程序中进行处理,并将处理结果输出到文件或者图形界面中进行展示。 2. 数据预处理:对于原始点数据进行预处理,包括去除噪声点、滤波、数据重采样等操作,以提高后续处理的准确性和效率。 3. 特征提取:从点数据中提取出相应的特征信息,如法线、曲率、表面描述符等,这些特征可以用于后续的目标识别和物体分割。 4. 目标识别:通过对点数据中的目标进行分类和识别,可以实现对三维场景中的物体进行自动化分析和理解。 5. 数据配准:如果点数据来自于不同的传感器或者采集设备,在进行处理之前需要将它们进行配准,使得它们具有相同的坐标系统和参考帧。 6. 三维重建:根据点数据恢复出三维物体的形状和结构,并进行三维建模操作,可以用于虚拟现实、增强现实等应用。 总的来说,点数据处理的C代码可以实现各种各样的功能,具体的实现方式和方法需要根据具体的任务和需求来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值