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
d2d32f69
Commit
d2d32f69
authored
Jul 28, 2020
by
Shaoshuai Shi
Browse files
fix seed for sample_points data_processsor, update configs
parent
c4033be4
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
23 additions
and
19 deletions
+23
-19
README.md
README.md
+5
-6
pcdet/datasets/processor/data_processor.py
pcdet/datasets/processor/data_processor.py
+3
-0
pcdet/models/backbones_2d/base_bev_backbone.py
pcdet/models/backbones_2d/base_bev_backbone.py
+1
-1
tools/cfgs/kitti_models/pointrcnn.yaml
tools/cfgs/kitti_models/pointrcnn.yaml
+4
-0
tools/cfgs/nuscenes_models/cbgs_pp_multihead.yaml
tools/cfgs/nuscenes_models/cbgs_pp_multihead.yaml
+3
-3
tools/cfgs/nuscenes_models/cbgs_second_multihead.yaml
tools/cfgs/nuscenes_models/cbgs_second_multihead.yaml
+2
-2
tools/test.py
tools/test.py
+5
-7
No files found.
README.md
View file @
d2d32f69
...
@@ -85,14 +85,13 @@ All models are trained with 8 GTX 1080Ti GPUs and are available for download.
...
@@ -85,14 +85,13 @@ All models are trained with 8 GTX 1080Ti GPUs and are available for download.
| | training time | Car | Pedestrian | Cyclist | download |
| | training time | Car | Pedestrian | Cyclist | download |
|---------------------------------------------|----------:|:-------:|:-------:|:-------:|:---------:|
|---------------------------------------------|----------:|:-------:|:-------:|:-------:|:---------:|
|
[
PointPillar
](
tools/cfgs/kitti_models/pointpillar.yaml
)
|~95 mins| 77.28 | - | - |
[
model-18M
](
https://drive.google.com/file/d/1wMxWTpU1qUoY3DsCH31WJmvJxcjFXKlm/view?usp=sharing
)
|
|
[
PointPillar
](
tools/cfgs/kitti_models/pointpillar.yaml
)
|~95 mins| 77.28 | 52.29 | 62.68 |
[
model-18M
](
https://drive.google.com/file/d/1wMxWTpU1qUoY3DsCH31WJmvJxcjFXKlm/view?usp=sharing
)
|
|
[
SECOND
](
tools/cfgs/kitti_models/second.yaml
)
| ~2 hours | 78.62 | - | - |
[
model-20M
](
https://drive.google.com/file/d/1-01zsPOsqanZQqIIyy7FpNXStL3y4jdR/view?usp=sharing
)
|
|
[
SECOND
](
tools/cfgs/kitti_models/second.yaml
)
| ~2 hours | 78.62 | 52.98 | 67.15 |
[
model-20M
](
https://drive.google.com/file/d/1-01zsPOsqanZQqIIyy7FpNXStL3y4jdR/view?usp=sharing
)
|
|
[
SECOND-MultiHead
](
tools/cfgs/kitti_models/second_multihead.yaml
)
| - | - | - | - | ongoing |
|
[
PointRCNN
](
tools/cfgs/kitti_models/pointrcnn.yaml
)
| ~3 hours | 78.70 | - | - | ongoing|
|
[
PointRCNN
](
tools/cfgs/kitti_models/pointrcnn.yaml
)
| ~3 hours | 78.70 | - | - | ongoing|
|
[
PointRCNN-IoU
](
tools/cfgs/kitti_models/pointrcnn_iou.yaml
)
| ~3 hours | 78.
7
0 |
- | - | ongoing
|
|
[
PointRCNN-IoU
](
tools/cfgs/kitti_models/pointrcnn_iou.yaml
)
| ~3 hours | 78.
9
0 |
54.62 | 71.52 |
[
model-
](
)
|
|
[
Part-A^2-Free
](
tools/cfgs/kitti_models/PartA2_free.yaml
)
| ~4 hours| 78.72 | 65.99 | 74.29 |
[
model-
244M
](
https://drive.google.com/file/d/10GK1aCkLqxGNeX3lVu8cLZyE0G8002hY/view?usp=sharing
)
|
|
[
Part-A^2-Free
](
tools/cfgs/kitti_models/PartA2_free.yaml
)
| ~4 hours| 78.72 | 65.99 | 74.29 |
[
model-
](
https://drive.google.com/file/d/10GK1aCkLqxGNeX3lVu8cLZyE0G8002hY/view?usp=sharing
)
|
|
[
Part-A^2-Anchor
](
tools/cfgs/kitti_models/PartA2.yaml
)
| ~5 hours| 79.40 | - | - |
[
model-244M
](
https://drive.google.com/file/d/10GK1aCkLqxGNeX3lVu8cLZyE0G8002hY/view?usp=sharing
)
|
|
[
Part-A^2-Anchor
](
tools/cfgs/kitti_models/PartA2.yaml
)
| ~5 hours| 79.40 | - | - |
[
model-244M
](
https://drive.google.com/file/d/10GK1aCkLqxGNeX3lVu8cLZyE0G8002hY/view?usp=sharing
)
|
|
[
PV-RCNN
](
tools/cfgs/kitti_models/pv_rcnn.yaml
)
| ~6 hours| 83.69 |
- | -
|
[
model-50M
](
https://drive.google.com/file/d/1lIOq4Hxr0W3qsX83ilQv0nk1Cls6KAr-/view?usp=sharing
)
|
|
[
PV-RCNN
](
tools/cfgs/kitti_models/pv_rcnn.yaml
)
| ~6 hours| 83.69 |
54.49 | 69.47
|
[
model-50M
](
https://drive.google.com/file/d/1lIOq4Hxr0W3qsX83ilQv0nk1Cls6KAr-/view?usp=sharing
)
|
### NuScenes 3D Object Detection Baselines
### NuScenes 3D Object Detection Baselines
All models are trained with 8 GTX 1080Ti GPUs and are available for download.
All models are trained with 8 GTX 1080Ti GPUs and are available for download.
...
...
pcdet/datasets/processor/data_processor.py
View file @
d2d32f69
...
@@ -70,6 +70,9 @@ class DataProcessor(object):
...
@@ -70,6 +70,9 @@ class DataProcessor(object):
if
num_points
==
-
1
:
if
num_points
==
-
1
:
return
data_dict
return
data_dict
if
config
.
FIX_SEED
[
self
.
mode
]:
np
.
random
.
seed
(
512
)
points
=
data_dict
[
'points'
]
points
=
data_dict
[
'points'
]
if
num_points
<
len
(
points
):
if
num_points
<
len
(
points
):
pts_depth
=
np
.
linalg
.
norm
(
points
[:,
0
:
3
],
axis
=
1
)
pts_depth
=
np
.
linalg
.
norm
(
points
[:,
0
:
3
],
axis
=
1
)
...
...
pcdet/models/backbones_2d/base_bev_backbone.py
View file @
d2d32f69
...
@@ -46,7 +46,7 @@ class BaseBEVBackbone(nn.Module):
...
@@ -46,7 +46,7 @@ class BaseBEVBackbone(nn.Module):
self
.
blocks
.
append
(
nn
.
Sequential
(
*
cur_layers
))
self
.
blocks
.
append
(
nn
.
Sequential
(
*
cur_layers
))
if
len
(
upsample_strides
)
>
0
:
if
len
(
upsample_strides
)
>
0
:
stride
=
upsample_strides
[
idx
]
stride
=
upsample_strides
[
idx
]
if
stride
>
1
:
if
stride
>
=
1
:
self
.
deblocks
.
append
(
nn
.
Sequential
(
self
.
deblocks
.
append
(
nn
.
Sequential
(
nn
.
ConvTranspose2d
(
nn
.
ConvTranspose2d
(
num_filters
[
idx
],
num_upsample_filters
[
idx
],
num_filters
[
idx
],
num_upsample_filters
[
idx
],
...
...
tools/cfgs/kitti_models/pointrcnn.yaml
View file @
d2d32f69
...
@@ -12,6 +12,10 @@ DATA_CONFIG:
...
@@ -12,6 +12,10 @@ DATA_CONFIG:
'
train'
:
16384
,
'
train'
:
16384
,
'
test'
:
16384
'
test'
:
16384
}
}
FIX_SEED
:
{
'
train'
:
False
,
'
test'
:
True
}
-
NAME
:
shuffle_points
-
NAME
:
shuffle_points
SHUFFLE_ENABLED
:
{
SHUFFLE_ENABLED
:
{
...
...
tools/cfgs/nuscenes_models/cbgs_pp_multihead.yaml
View file @
d2d32f69
...
@@ -217,11 +217,11 @@ MODEL:
...
@@ -217,11 +217,11 @@ MODEL:
EVAL_METRIC
:
kitti
EVAL_METRIC
:
kitti
NMS_CONFIG
:
NMS_CONFIG
:
MULTI_CLASSES_NMS
:
Fals
e
MULTI_CLASSES_NMS
:
Tru
e
NMS_TYPE
:
nms_gpu
NMS_TYPE
:
nms_gpu
NMS_THRESH
:
0.2
NMS_THRESH
:
0.2
NMS_PRE_MAXSIZE
:
4096
NMS_PRE_MAXSIZE
:
1000
NMS_POST_MAXSIZE
:
100
NMS_POST_MAXSIZE
:
83
OPTIMIZATION
:
OPTIMIZATION
:
...
...
tools/cfgs/nuscenes_models/cbgs_second_multihead.yaml
View file @
d2d32f69
...
@@ -199,11 +199,11 @@ MODEL:
...
@@ -199,11 +199,11 @@ MODEL:
EVAL_METRIC
:
kitti
EVAL_METRIC
:
kitti
NMS_CONFIG
:
NMS_CONFIG
:
MULTI_CLASSES_NMS
:
Fals
e
MULTI_CLASSES_NMS
:
Tru
e
NMS_TYPE
:
nms_gpu
NMS_TYPE
:
nms_gpu
NMS_THRESH
:
0.2
NMS_THRESH
:
0.2
NMS_PRE_MAXSIZE
:
1000
NMS_PRE_MAXSIZE
:
1000
NMS_POST_MAXSIZE
:
100
NMS_POST_MAXSIZE
:
83
OPTIMIZATION
:
OPTIMIZATION
:
...
...
tools/test.py
View file @
d2d32f69
...
@@ -7,7 +7,6 @@ import re
...
@@ -7,7 +7,6 @@ import re
import
datetime
import
datetime
import
argparse
import
argparse
from
pathlib
import
Path
from
pathlib
import
Path
import
torch.distributed
as
dist
from
pcdet.datasets
import
build_dataloader
from
pcdet.datasets
import
build_dataloader
from
pcdet.models
import
build_network
from
pcdet.models
import
build_network
from
pcdet.utils
import
common_utils
from
pcdet.utils
import
common_utils
...
@@ -19,12 +18,10 @@ def parse_config():
...
@@ -19,12 +18,10 @@ def parse_config():
parser
=
argparse
.
ArgumentParser
(
description
=
'arg parser'
)
parser
=
argparse
.
ArgumentParser
(
description
=
'arg parser'
)
parser
.
add_argument
(
'--cfg_file'
,
type
=
str
,
default
=
None
,
help
=
'specify the config for training'
)
parser
.
add_argument
(
'--cfg_file'
,
type
=
str
,
default
=
None
,
help
=
'specify the config for training'
)
parser
.
add_argument
(
'--batch_size'
,
type
=
int
,
default
=
16
,
required
=
False
,
help
=
'batch size for training'
)
parser
.
add_argument
(
'--batch_size'
,
type
=
int
,
default
=
None
,
required
=
False
,
help
=
'batch size for training'
)
parser
.
add_argument
(
'--epochs'
,
type
=
int
,
default
=
80
,
required
=
False
,
help
=
'Number of epochs to train for'
)
parser
.
add_argument
(
'--workers'
,
type
=
int
,
default
=
4
,
help
=
'number of workers for dataloader'
)
parser
.
add_argument
(
'--workers'
,
type
=
int
,
default
=
4
,
help
=
'number of workers for dataloader'
)
parser
.
add_argument
(
'--extra_tag'
,
type
=
str
,
default
=
'default'
,
help
=
'extra tag for this experiment'
)
parser
.
add_argument
(
'--extra_tag'
,
type
=
str
,
default
=
'default'
,
help
=
'extra tag for this experiment'
)
parser
.
add_argument
(
'--ckpt'
,
type
=
str
,
default
=
None
,
help
=
'checkpoint to start from'
)
parser
.
add_argument
(
'--ckpt'
,
type
=
str
,
default
=
None
,
help
=
'checkpoint to start from'
)
parser
.
add_argument
(
'--mgpus'
,
action
=
'store_true'
,
default
=
False
,
help
=
'whether to use multiple gpu'
)
parser
.
add_argument
(
'--launcher'
,
choices
=
[
'none'
,
'pytorch'
,
'slurm'
],
default
=
'none'
)
parser
.
add_argument
(
'--launcher'
,
choices
=
[
'none'
,
'pytorch'
,
'slurm'
],
default
=
'none'
)
parser
.
add_argument
(
'--tcp_port'
,
type
=
int
,
default
=
18888
,
help
=
'tcp port for distrbuted training'
)
parser
.
add_argument
(
'--tcp_port'
,
type
=
int
,
default
=
18888
,
help
=
'tcp port for distrbuted training'
)
parser
.
add_argument
(
'--local_rank'
,
type
=
int
,
default
=
0
,
help
=
'local rank for distributed training'
)
parser
.
add_argument
(
'--local_rank'
,
type
=
int
,
default
=
0
,
help
=
'local rank for distributed training'
)
...
@@ -133,11 +130,13 @@ def main():
...
@@ -133,11 +130,13 @@ def main():
if
args
.
launcher
==
'none'
:
if
args
.
launcher
==
'none'
:
dist_test
=
False
dist_test
=
False
else
:
else
:
args
.
batch_size
,
cfg
.
LOCAL_RANK
=
getattr
(
common_utils
,
'init_dist_%s'
%
args
.
launcher
)(
total_gpus
,
cfg
.
LOCAL_RANK
=
getattr
(
common_utils
,
'init_dist_%s'
%
args
.
launcher
)(
args
.
batch_size
,
args
.
tcp_port
,
args
.
local_rank
,
backend
=
'nccl'
args
.
tcp_port
,
args
.
local_rank
,
backend
=
'nccl'
)
)
dist_test
=
True
dist_test
=
True
args
.
batch_size
=
cfg
.
OPTIMIZATION
.
BATCH_SIZE_PER_GPU
if
args
.
batch_size
is
None
else
args
.
batch_size
output_dir
=
cfg
.
ROOT_DIR
/
'output'
/
cfg
.
EXP_GROUP_PATH
/
cfg
.
TAG
/
args
.
extra_tag
output_dir
=
cfg
.
ROOT_DIR
/
'output'
/
cfg
.
EXP_GROUP_PATH
/
cfg
.
TAG
/
args
.
extra_tag
output_dir
.
mkdir
(
parents
=
True
,
exist_ok
=
True
)
output_dir
.
mkdir
(
parents
=
True
,
exist_ok
=
True
)
...
@@ -163,7 +162,6 @@ def main():
...
@@ -163,7 +162,6 @@ def main():
logger
.
info
(
'CUDA_VISIBLE_DEVICES=%s'
%
gpu_list
)
logger
.
info
(
'CUDA_VISIBLE_DEVICES=%s'
%
gpu_list
)
if
dist_test
:
if
dist_test
:
total_gpus
=
dist
.
get_world_size
()
logger
.
info
(
'total_batch_size: %d'
%
(
total_gpus
*
args
.
batch_size
))
logger
.
info
(
'total_batch_size: %d'
%
(
total_gpus
*
args
.
batch_size
))
for
key
,
val
in
vars
(
args
).
items
():
for
key
,
val
in
vars
(
args
).
items
():
logger
.
info
(
'{:16} {}'
.
format
(
key
,
val
))
logger
.
info
(
'{:16} {}'
.
format
(
key
,
val
))
...
...
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