专栏: 基于点云的神经网络,欢迎关注
本期主要介绍Openpcdet中配置文件中点云数据处理的方法,深入配置文件进行解读。
0. 引言
OpenPCDet是一个3D检测的开源架构
pointnet++直接将点云作为输入进行训练。VoxelNet首先将点云进行体素化表示,再对体素化后的数据进行训练,本质上还是对三维数据的训练。为了减少计算损耗,pointpillar先将点云划分为各个 pillar再将处理后的数据映射到二维空间,大大减少了计算资源的消耗。
要了解OpenPCDet可以关注:hyshhh:pointpillar(OpenPCDet)介绍、安装、评价指标介绍
要了解KITTI数据集可以关注:hyshhh:KITTI数据集介绍、组成结构、可视化方法
一、找到网络的配置文件,其中有数据配置的地址
模型的配置文件如何寻找可以关注:hyshhh:OPenPCDet中的pointpillar中各个模块源代码位置与代码原理
二、 数据配置文件讲解
- 首先定义了数据集存放的路径
2. 定义点云的 范围 (x_min, y_min, z_min, x_max, y_max, z_max):
x: [0, 70.4]
→ 只处理 0m 到 70.4m 范围内的点。
y: [-40, 40]
→ 左右 40m 。
z: [-3, 1]
→ 处理的高度范围。
3. 训练 & 测试集划分
train
: 训练集
test
: 验证集 (val)
4. 数据信息文件
kitti_infos_train.pkl
→ 训练集的索引文件。
kitti_infos_val.pkl
→ 测试集的索引文件。
这些 .pkl
文件存储了 每个点云的路径、标注信息等。
5.读取哪些数据
GET_ITEM_LIST: ["points"]
→ 只读取点云数据。
FOV_POINTS_ONLY: True
→ 只处理相机视野范围内的点。
6.数据增强 (Data Augmentation)
DISABLE_AUG_LIST: ['placeholder']
→ 目前没有禁用的数据增强方式。
7.目标采样
gt_sampling
→ 目标采样,即从 kitti_dbinfos_train.pkl
数据库中抽取真实目标进行增强。filter_by_min_points: ['Car:5', 'Pedestrian:5', 'Cyclist:5']
→ 过滤点数少于 5 个的目标。
SAMPLE_GROUPS: ['Car:20','Pedestrian:15', 'Cyclist:15']
→ 每帧增加 20辆车,15个行人,15个自行车目标。
DATABASE_WITH_FAKELIDAR: False
→ 是否使用 Fake Lidar 方式增强。
8.翻转 (Flip)
沿 x 轴 随机翻转数据。
9. 旋转 (Rotation)
在 -45° 到 45° 之间随机旋转点云。
10.缩放 (Scaling)
在 0.95x 到 1.05x 之间随机缩放点云。
11. 绝对坐标编码
encoding_type: absolute_coordinates_encoding
→ 绝对坐标编码。
只使用 x, y, z, intensity 作为点云特征。
12. 数据增强——随机乱打点
训练集 (train
) 随机打乱点。
测试集 (test
) 不打乱点。
13. 数据处理:体素化 (Voxelization)
VOXEL_SIZE: [0.05, 0.05, 0.1]
→ 每个体素的尺寸 (5cm × 5cm × 10cm)。
MAX_POINTS_PER_VOXEL: 5
→ 每个体素最多 5 个点。
MAX_NUMBER_OF_VOXELS
:
train: 16000
→ 训练时最多 16000 个体素。
test: 40000
→ 测试时最多 40000 个体素(测试时不需要梯度计算,所以可以用更多体素)。