Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
mmdetection3d
Commits
ccf028f7
Commit
ccf028f7
authored
Jun 15, 2022
by
VVsssssk
Committed by
ChaimZhu
Jul 20, 2022
Browse files
[Refactor]Refactor pp cfg
parent
955b4419
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
29 deletions
+55
-29
configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
...illars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
+46
-18
configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
...ntpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
+9
-11
No files found.
configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
View file @
ccf028f7
...
@@ -8,6 +8,7 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
...
@@ -8,6 +8,7 @@ point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
# dataset settings
# dataset settings
data_root
=
'data/kitti/'
data_root
=
'data/kitti/'
class_names
=
[
'Pedestrian'
,
'Cyclist'
,
'Car'
]
class_names
=
[
'Pedestrian'
,
'Cyclist'
,
'Car'
]
metainfo
=
dict
(
CLASSES
=
class_names
)
# PointPillars adopted a different sampling strategies among classes
# PointPillars adopted a different sampling strategies among classes
db_sampler
=
dict
(
db_sampler
=
dict
(
data_root
=
data_root
,
data_root
=
data_root
,
...
@@ -32,8 +33,9 @@ train_pipeline = [
...
@@ -32,8 +33,9 @@ train_pipeline = [
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes_3d'
,
'gt_labels_3d'
])
type
=
'Pack3DDetInputs'
,
keys
=
[
'points'
,
'gt_labels_3d'
,
'gt_bboxes_3d'
])
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'LoadPointsFromFile'
,
coord_type
=
'LIDAR'
,
load_dim
=
4
,
use_dim
=
4
),
dict
(
type
=
'LoadPointsFromFile'
,
coord_type
=
'LIDAR'
,
load_dim
=
4
,
use_dim
=
4
),
...
@@ -51,31 +53,57 @@ test_pipeline = [
...
@@ -51,31 +53,57 @@ test_pipeline = [
dict
(
type
=
'RandomFlip3D'
),
dict
(
type
=
'RandomFlip3D'
),
dict
(
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
dict
(
type
=
'Pack3DDetInputs'
,
keys
=
[
'points'
])
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
])
])
])
]
]
data
=
dict
(
train_dataloader
=
dict
(
train
=
dict
(
dataset
=
dict
(
pipeline
=
train_pipeline
,
classes
=
class_names
)),
dataset
=
dict
(
dataset
=
dict
(
pipeline
=
train_pipeline
,
metainfo
=
metainfo
)))
val
=
dict
(
pipeline
=
test_pipeline
,
classes
=
class_names
),
test_dataloader
=
dict
(
dataset
=
dict
(
metainfo
=
metainfo
))
test
=
dict
(
pipeline
=
test_pipeline
,
classes
=
class_names
))
val_dataloader
=
dict
(
dataset
=
dict
(
metainfo
=
metainfo
))
# In practice PointPillars also uses a different schedule
# In practice PointPillars also uses a different schedule
# optimizer
# optimizer
lr
=
0.001
lr
=
0.001
optimizer
=
dict
(
lr
=
lr
)
epoch_num
=
80
iter_num_in_epoch
=
3712
optim_wrapper
=
dict
(
optimizer
=
dict
(
lr
=
lr
),
clip_grad
=
dict
(
max_norm
=
35
,
norm_type
=
2
))
param_scheduler
=
[
dict
(
type
=
'CosineAnnealingLR'
,
T_max
=
epoch_num
*
0.4
*
iter_num_in_epoch
,
eta_min
=
lr
*
10
,
by_epoch
=
False
,
begin
=
0
,
end
=
epoch_num
*
0.4
*
iter_num_in_epoch
),
dict
(
type
=
'CosineAnnealingLR'
,
T_max
=
epoch_num
*
0.6
*
iter_num_in_epoch
,
eta_min
=
lr
*
1e-4
,
by_epoch
=
False
,
begin
=
epoch_num
*
0.4
*
iter_num_in_epoch
,
end
=
epoch_num
*
1
*
iter_num_in_epoch
),
dict
(
type
=
'CosineAnnealingBetas'
,
T_max
=
epoch_num
*
0.4
*
iter_num_in_epoch
,
eta_min
=
0.85
/
0.95
,
by_epoch
=
False
,
begin
=
0
,
end
=
epoch_num
*
0.4
*
iter_num_in_epoch
),
dict
(
type
=
'CosineAnnealingBetas'
,
T_max
=
epoch_num
*
0.6
*
iter_num_in_epoch
,
eta_min
=
1
,
by_epoch
=
False
,
begin
=
epoch_num
*
0.4
*
iter_num_in_epoch
,
end
=
epoch_num
*
1
*
iter_num_in_epoch
)
]
# max_norm=35 is slightly better than 10 for PointPillars in the earlier
# max_norm=35 is slightly better than 10 for PointPillars in the earlier
# development of the codebase thus we keep the setting. But we does not
# development of the codebase thus we keep the setting. But we does not
# specifically tune this parameter.
# specifically tune this parameter.
optimizer_config
=
dict
(
grad_clip
=
dict
(
max_norm
=
35
,
norm_type
=
2
))
# PointPillars usually need longer schedule than second, we simply double
# PointPillars usually need longer schedule than second, we simply double
# the training schedule. Do remind that since we use RepeatDataset and
# the training schedule. Do remind that since we use RepeatDataset and
# repeat factor is 2, so we actually train 160 epochs.
# repeat factor is 2, so we actually train 160 epochs.
runner
=
dict
(
max_epochs
=
80
)
train_cfg
=
dict
(
by_epoch
=
True
,
max_epochs
=
epoch_num
)
val_cfg
=
dict
(
interval
=
2
)
# Use evaluation interval=2 reduce the number of evaluation timese
test_cfg
=
dict
()
evaluation
=
dict
(
interval
=
2
)
configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
View file @
ccf028f7
...
@@ -31,6 +31,7 @@ model = dict(
...
@@ -31,6 +31,7 @@ model = dict(
dataset_type
=
'KittiDataset'
dataset_type
=
'KittiDataset'
data_root
=
'data/kitti/'
data_root
=
'data/kitti/'
class_names
=
[
'Car'
]
class_names
=
[
'Car'
]
metainfo
=
dict
(
CLASSES
=
class_names
)
db_sampler
=
dict
(
db_sampler
=
dict
(
data_root
=
data_root
,
data_root
=
data_root
,
info_path
=
data_root
+
'kitti_dbinfos_train.pkl'
,
info_path
=
data_root
+
'kitti_dbinfos_train.pkl'
,
...
@@ -52,7 +53,9 @@ train_pipeline = [
...
@@ -52,7 +53,9 @@ train_pipeline = [
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes_3d'
,
'gt_labels_3d'
])
dict
(
type
=
'Pack3DDetInputs'
,
keys
=
[
'points'
,
'gt_labels_3d'
,
'gt_bboxes_3d'
])
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'LoadPointsFromFile'
,
coord_type
=
'LIDAR'
,
load_dim
=
4
,
use_dim
=
4
),
dict
(
type
=
'LoadPointsFromFile'
,
coord_type
=
'LIDAR'
,
load_dim
=
4
,
use_dim
=
4
),
...
@@ -70,18 +73,13 @@ test_pipeline = [
...
@@ -70,18 +73,13 @@ test_pipeline = [
dict
(
type
=
'RandomFlip3D'
),
dict
(
type
=
'RandomFlip3D'
),
dict
(
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
dict
(
type
=
'Pack3DDetInputs'
,
keys
=
[
'points'
])
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
])
])
])
]
]
data
=
dict
(
train_dataloader
=
dict
(
train
=
dict
(
dataset
=
dict
(
type
=
'RepeatDataset'
,
type
=
'RepeatDataset'
,
times
=
2
,
times
=
2
,
dataset
=
dict
(
pipeline
=
train_pipeline
,
classes
=
class_names
)),
dataset
=
dict
(
pipeline
=
train_pipeline
,
metainfo
=
metainfo
)))
val
=
dict
(
pipeline
=
test_pipeline
,
classes
=
class_names
),
test_dataloader
=
dict
(
dataset
=
dict
(
pipeline
=
test_pipeline
,
metainfo
=
metainfo
))
test
=
dict
(
pipeline
=
test_pipeline
,
classes
=
class_names
))
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment