-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathpointpillar_early.yaml
140 lines (123 loc) · 3.24 KB
/
pointpillar_early.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: opv2v_point_pillar_lidar_early
root_dir: "dataset/OPV2V/train"
validate_dir: "dataset/OPV2V/validate"
test_dir: "dataset/OPV2V/test"
yaml_parser: "load_point_pillar_params"
train_params:
batch_size: &batch_size 6
epoches: 30
eval_freq: 2
save_freq: 2
max_cav: &max_cav 5
input_source: ['lidar']
label_type: 'lidar'
comm_range: 70
fusion:
core_method: 'early' # LateFusionDataset, EarlyFusionDataset, IntermediateFusionDataset supported
dataset: 'opv2v'
args:
proj_first: True # early is proj first.
# preprocess-related
preprocess:
# options: BasePreprocessor, VoxelPreprocessor, BevPreprocessor
core_method: 'SpVoxelPreprocessor'
args:
voxel_size: &voxel_size [0.4, 0.4, 4]
max_points_per_voxel: 32
max_voxel_train: 32000
max_voxel_test: 70000
# lidar range for each individual cav. Format: xyzxyz minmax
cav_lidar_range: &cav_lidar [-140.8, -40, -3, 140.8, 40, 1]
data_augment:
- 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 ]
# anchor box related
postprocess: &postprocess_params
core_method: 'VoxelPostprocessor' # VoxelPostprocessor, BevPostprocessor supported
gt_range: *cav_lidar
anchor_args:
cav_lidar_range: *cav_lidar
l: 3.9
w: 1.6
h: 1.56
r: &anchor_yaw [0, 90]
feature_stride: 2
num: &achor_num 2
target_args:
pos_threshold: 0.6
neg_threshold: 0.45
score_threshold: 0.2
order: 'hwl' # hwl or lwh
max_num: 100 # maximum number of objects in a single frame. use this number to make sure different frames has the same dimension in the same batch
nms_thresh: 0.15
dir_args: &dir_args
dir_offset: 0.7853
num_bins: 2
anchor_yaw: *anchor_yaw
# model related
model:
core_method: point_pillar
args:
voxel_size: *voxel_size
lidar_range: *cav_lidar
anchor_number: *achor_num
max_cav: *max_cav
compression: 0 # compression rate
backbone_fix: false
supervise_single: false
pillar_vfe:
use_norm: true
with_distance: false
use_absolute_xyz: true
num_filters: [64]
point_pillar_scatter:
num_features: 64
base_bev_backbone:
resnet: false
layer_nums: &layer_nums [3, 5, 8]
layer_strides: [2, 2, 2]
num_filters: &num_filters [64, 128, 256]
upsample_strides: [1, 2, 4]
num_upsample_filter: [128, 128, 128]
compression: 0
voxel_size: *voxel_size
shrink_header:
kernal_size: [ 3 ]
stride: [ 1 ]
padding: [ 1 ]
dim: [ 256 ]
input_dim: 384 # 128 * 3
anchor_num: *achor_num
dir_args: *dir_args
loss:
core_method: point_pillar_loss
args:
pos_cls_weight: 2.0
cls:
type: 'SigmoidFocalLoss'
alpha: 0.25
gamma: 2.0
weight: 1.0
reg:
type: 'WeightedSmoothL1Loss'
sigma: 3.0
codewise: true
weight: 2.0
dir:
type: 'WeightedSoftmaxClassificationLoss'
weight: 0.2
args: *dir_args
optimizer:
core_method: Adam
lr: 0.002
args:
eps: 1e-10
weight_decay: 1e-4
lr_scheduler:
core_method: multistep #step, multistep and Exponential support
gamma: 0.1
step_size: [10, 20]