根据tools/cfgs/dataset_configs/kitti_dataset.yaml
锁定相应模块
(一)数据增强
info:output/kitti_models/pv_rcnn/default/log_train.txt第42行
用到了以下几个数据增强器
DATA_CONFIG:
DATA_AUGMENTOR:
AUG_CONFIG_LIST:
- NAME: gt_sampling
gt_sampling
及以下的各个函数均定位在pcdet/datasets/augmentor/database_sampler.py
- NAME: gt_sampling
USE_ROAD_PLANE: False
DB_INFO_PATH:
- kitti_dbinfos_train.pkl
#根据难度和关键点数量过滤掉一部分数据
#具体函数在头文件中的augmentor_utils.py
PREPARE: {
filter_by_min_points: ['Car:5', 'Pedestrian:5', 'Cyclist:5'],
filter_by_difficulty: [-1],
}
SAMPLE_GROUPS: ['Car:15','Pedestrian:10', 'Cyclist:10']
NUM_POINT_FEATURES: 4
DATABASE_WITH_FAKELIDAR: False
REMOVE_EXTRA_WIDTH: [0.0, 0.0, 0.0]
LIMIT_WHOLE_SCENE: False
#通过随机翻转、旋转、放缩改变一部分dataset中gt_boxes和points的值,以增强数据
#详细代码在头文件中的database_sampler.py
- NAME: random_world_flip
ALONG_AXIS_LIST: ['x']
- NAME: random_world_rotation
WORLD_ROT_ANGLE: [-0.78539816, 0.78539816]
- NAME: random_world_scaling
WORLD_SCALE_RANGE: [0.95, 1.05]
随机翻转、旋转、放缩数据增强方式的详解:SA-SSD中的数据增强机制
(二)点云数据读取
info:output/kitti_models/pv_rcnn/default/log_train.txt第44行
POINT_FEATURE_ENCODING
定位在pcdet/dataset/processor/point_feature_encoder.py
# 作用是将点云数据按照['x', 'y', 'z', 'intensity']的格式解码读取
POINT_FEATURE_ENCODING: {
encoding_type: absolute_coordinates_encoding,
used_feature_list: ['x', 'y', 'z', 'intensity'],
src_feature_list: ['x', 'y', 'z', 'intensity'],
}
(三)数据生成
info:output/kitti_models/pv_rcnn/default/log_train.txt第48行
DATA_PROCESSOR
及相关函数定位在pcdet/datasets/processor/data_processor.py
中
DATA_PROCESSOR:
# 作用是遮盖所有在点云范围之外的点和gt_box
# 具体函数在头文件中的common_utils.py和box_utils.py
- NAME: mask_points_and_boxes_outside_range
REMOVE_OUTSIDE_BOXES: True
# 作用是将点云数据点随机排序(洗牌)
- NAME: shuffle_points
SHUFFLE_ENABLED: {
'train': True,
'test': False
}
# 根据spconv中的函数从点云中生成体素
- NAME: transform_points_to_voxels
VOXEL_SIZE: [0.05, 0.05, 0.1]
MAX_POINTS_PER_VOXEL: 5
MAX_NUMBER_OF_VOXELS: {
'train': 16000,
'test': 40000
}
转:
https://blog.csdn.net/weixin_44579633/article/details/107944050