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
OpenPCDet
Commits
d2829c96
Commit
d2829c96
authored
Jul 28, 2020
by
Shaoshuai Shi
Browse files
Merge branch 'dev_v0.3'
parents
669881e4
b43d99f5
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
173 additions
and
12 deletions
+173
-12
pcdet/datasets/processor/data_processor.py
pcdet/datasets/processor/data_processor.py
+0
-3
pcdet/utils/common_utils.py
pcdet/utils/common_utils.py
+4
-3
tools/cfgs/kitti_models/pointrcnn.yaml
tools/cfgs/kitti_models/pointrcnn.yaml
+0
-4
tools/cfgs/kitti_models/pointrcnn_iou.yaml
tools/cfgs/kitti_models/pointrcnn_iou.yaml
+160
-0
tools/scripts/slurm_test_mgpu.sh
tools/scripts/slurm_test_mgpu.sh
+3
-1
tools/scripts/slurm_train.sh
tools/scripts/slurm_train.sh
+2
-1
tools/test.py
tools/test.py
+4
-0
No files found.
pcdet/datasets/processor/data_processor.py
View file @
d2829c96
...
...
@@ -70,9 +70,6 @@ class DataProcessor(object):
if
num_points
==
-
1
:
return
data_dict
if
config
.
FIX_SEED
[
self
.
mode
]:
np
.
random
.
seed
(
512
)
points
=
data_dict
[
'points'
]
if
num_points
<
len
(
points
):
pts_depth
=
np
.
linalg
.
norm
(
points
[:,
0
:
3
],
axis
=
1
)
...
...
pcdet/utils/common_utils.py
View file @
d2829c96
...
...
@@ -133,6 +133,7 @@ def init_dist_slurm(tcp_port, local_rank, backend='nccl'):
dist
.
init_process_group
(
backend
=
backend
)
total_gpus
=
dist
.
get_world_size
()
rank
=
dist
.
get_rank
()
return
total_gpus
,
rank
...
...
tools/cfgs/kitti_models/pointrcnn.yaml
View file @
d2829c96
...
...
@@ -12,10 +12,6 @@ DATA_CONFIG:
'
train'
:
16384
,
'
test'
:
16384
}
FIX_SEED
:
{
'
train'
:
False
,
'
test'
:
True
}
-
NAME
:
shuffle_points
SHUFFLE_ENABLED
:
{
...
...
tools/cfgs/kitti_models/pointrcnn_iou.yaml
0 → 100644
View file @
d2829c96
CLASS_NAMES
:
[
'
Car'
,
'
Pedestrian'
,
'
Cyclist'
]
DATA_CONFIG
:
_BASE_CONFIG_
:
cfgs/dataset_configs/kitti_dataset.yaml
DATA_PROCESSOR
:
-
NAME
:
mask_points_and_boxes_outside_range
REMOVE_OUTSIDE_BOXES
:
True
-
NAME
:
sample_points
NUM_POINTS
:
{
'
train'
:
16384
,
'
test'
:
16384
}
-
NAME
:
shuffle_points
SHUFFLE_ENABLED
:
{
'
train'
:
True
,
'
test'
:
False
}
MODEL
:
NAME
:
PointRCNN
BACKBONE_3D
:
NAME
:
PointNet2MSG
SA_CONFIG
:
NPOINTS
:
[
4096
,
1024
,
256
,
64
]
RADIUS
:
[[
0.1
,
0.5
],
[
0.5
,
1.0
],
[
1.0
,
2.0
],
[
2.0
,
4.0
]]
NSAMPLE
:
[[
16
,
32
],
[
16
,
32
],
[
16
,
32
],
[
16
,
32
]]
MLPS
:
[[[
16
,
16
,
32
],
[
32
,
32
,
64
]],
[[
64
,
64
,
128
],
[
64
,
96
,
128
]],
[[
128
,
196
,
256
],
[
128
,
196
,
256
]],
[[
256
,
256
,
512
],
[
256
,
384
,
512
]]]
FP_MLPS
:
[[
128
,
128
],
[
256
,
256
],
[
512
,
512
],
[
512
,
512
]]
POINT_HEAD
:
NAME
:
PointHeadBox
CLS_FC
:
[
256
,
256
]
REG_FC
:
[
256
,
256
]
CLASS_AGNOSTIC
:
False
USE_POINT_FEATURES_BEFORE_FUSION
:
False
TARGET_CONFIG
:
GT_EXTRA_WIDTH
:
[
0.2
,
0.2
,
0.2
]
BOX_CODER
:
PointResidualCoder
BOX_CODER_CONFIG
:
{
'
use_mean_size'
:
True
,
'
mean_size'
:
[
[
3.9
,
1.6
,
1.56
],
[
0.8
,
0.6
,
1.73
],
[
1.76
,
0.6
,
1.73
]
]
}
LOSS_CONFIG
:
LOSS_REG
:
WeightedSmoothL1Loss
LOSS_WEIGHTS
:
{
'
point_cls_weight'
:
1.0
,
'
point_box_weight'
:
1.0
,
'
code_weights'
:
[
1.0
,
1.0
,
1.0
,
1.0
,
1.0
,
1.0
,
1.0
,
1.0
]
}
ROI_HEAD
:
NAME
:
PointRCNNHead
CLASS_AGNOSTIC
:
True
ROI_POINT_POOL
:
POOL_EXTRA_WIDTH
:
[
0.0
,
0.0
,
0.0
]
NUM_SAMPLED_POINTS
:
512
DEPTH_NORMALIZER
:
70.0
XYZ_UP_LAYER
:
[
128
,
128
]
CLS_FC
:
[
256
,
256
]
REG_FC
:
[
256
,
256
]
DP_RATIO
:
0.0
USE_BN
:
False
SA_CONFIG
:
NPOINTS
:
[
128
,
32
,
-1
]
RADIUS
:
[
0.2
,
0.4
,
100
]
NSAMPLE
:
[
16
,
16
,
16
]
MLPS
:
[[
128
,
128
,
128
],
[
128
,
128
,
256
],
[
256
,
256
,
512
]]
NMS_CONFIG
:
TRAIN
:
NMS_TYPE
:
nms_gpu
MULTI_CLASSES_NMS
:
False
NMS_PRE_MAXSIZE
:
9000
NMS_POST_MAXSIZE
:
512
NMS_THRESH
:
0.8
TEST
:
NMS_TYPE
:
nms_gpu
MULTI_CLASSES_NMS
:
False
NMS_PRE_MAXSIZE
:
9000
NMS_POST_MAXSIZE
:
100
NMS_THRESH
:
0.85
TARGET_CONFIG
:
BOX_CODER
:
ResidualCoder
ROI_PER_IMAGE
:
128
FG_RATIO
:
0.5
SAMPLE_ROI_BY_EACH_CLASS
:
True
CLS_SCORE_TYPE
:
roi_iou
CLS_FG_THRESH
:
0.7
CLS_BG_THRESH
:
0.25
CLS_BG_THRESH_LO
:
0.1
HARD_BG_RATIO
:
0.8
REG_FG_THRESH
:
0.55
LOSS_CONFIG
:
CLS_LOSS
:
BinaryCrossEntropy
REG_LOSS
:
smooth-l1
CORNER_LOSS_REGULARIZATION
:
True
LOSS_WEIGHTS
:
{
'
rcnn_cls_weight'
:
1.0
,
'
rcnn_reg_weight'
:
1.0
,
'
rcnn_corner_weight'
:
1.0
,
'
code_weights'
:
[
1.0
,
1.0
,
1.0
,
1.0
,
1.0
,
1.0
,
1.0
]
}
POST_PROCESSING
:
RECALL_THRESH_LIST
:
[
0.3
,
0.5
,
0.7
]
SCORE_THRESH
:
0.1
OUTPUT_RAW_SCORE
:
False
EVAL_METRIC
:
kitti
NMS_CONFIG
:
MULTI_CLASSES_NMS
:
False
NMS_TYPE
:
nms_gpu
NMS_THRESH
:
0.1
NMS_PRE_MAXSIZE
:
4096
NMS_POST_MAXSIZE
:
500
OPTIMIZATION
:
BATCH_SIZE_PER_GPU
:
3
NUM_EPOCHS
:
80
OPTIMIZER
:
adam_onecycle
LR
:
0.01
WEIGHT_DECAY
:
0.01
MOMENTUM
:
0.9
MOMS
:
[
0.95
,
0.85
]
PCT_START
:
0.4
DIV_FACTOR
:
10
DECAY_STEP_LIST
:
[
35
,
45
]
LR_DECAY
:
0.1
LR_CLIP
:
0.0000001
LR_WARMUP
:
False
WARMUP_EPOCH
:
1
GRAD_NORM_CLIP
:
10
tools/scripts/slurm_test_mgpu.sh
View file @
d2829c96
...
...
@@ -9,6 +9,8 @@ PY_ARGS=${@:3}
JOB_NAME
=
eval
SRUN_ARGS
=
${
SRUN_ARGS
:-
""
}
PORT
=
$((
(
RANDOM
%
10000
)
+
10000
))
srun
-p
${
PARTITION
}
\
--job-name
=
${
JOB_NAME
}
\
--gres
=
gpu:
${
GPUS_PER_NODE
}
\
...
...
@@ -16,5 +18,5 @@ srun -p ${PARTITION} \
--ntasks-per-node
=
${
GPUS_PER_NODE
}
\
--kill-on-bad-exit
=
1
\
${
SRUN_ARGS
}
\
python
-u
test.py
--launcher
slurm
${
PY_ARGS
}
python
-u
test.py
--launcher
slurm
${
PY_ARGS
}
--tcp_port
$PORT
tools/scripts/slurm_train.sh
View file @
d2829c96
...
...
@@ -11,6 +11,7 @@ GPUS_PER_NODE=${GPUS_PER_NODE:-8}
CPUS_PER_TASK
=
${
CPUS_PER_TASK
:-
5
}
SRUN_ARGS
=
${
SRUN_ARGS
:-
""
}
PORT
=
$((
(
RANDOM
%
10000
)
+
10000
))
srun
-p
${
PARTITION
}
\
--job-name
=
${
JOB_NAME
}
\
...
...
@@ -20,4 +21,4 @@ srun -p ${PARTITION} \
--cpus-per-task
=
${
CPUS_PER_TASK
}
\
--kill-on-bad-exit
=
1
\
${
SRUN_ARGS
}
\
python
-u
train.py
--launcher
slurm
${
PY_ARGS
}
python
-u
train.py
--launcher
slurm
${
PY_ARGS
}
--tcp_port
$PORT
tools/test.py
View file @
d2829c96
import
os
import
numpy
as
np
import
torch
from
tensorboardX
import
SummaryWriter
import
time
...
...
@@ -40,6 +41,9 @@ def parse_config():
cfg_from_yaml_file
(
args
.
cfg_file
,
cfg
)
cfg
.
TAG
=
Path
(
args
.
cfg_file
).
stem
cfg
.
EXP_GROUP_PATH
=
'/'
.
join
(
args
.
cfg_file
.
split
(
'/'
)[
1
:
-
1
])
# remove 'cfgs' and 'xxxx.yaml'
np
.
random
.
seed
(
1024
)
if
args
.
set_cfgs
is
not
None
:
cfg_from_list
(
args
.
set_cfgs
,
cfg
)
...
...
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