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
c2fe651f
Commit
c2fe651f
authored
Jul 20, 2022
by
zhangshilong
Committed by
ChaimZhu
Jul 20, 2022
Browse files
refactor directory
parent
bc5806ba
Changes
275
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
111 additions
and
126 deletions
+111
-126
mmdet3d/utils/collect_env.py
mmdet3d/utils/collect_env.py
+2
-1
mmdet3d/utils/setup_env.py
mmdet3d/utils/setup_env.py
+5
-5
mmdet3d/utils/typing.py
mmdet3d/utils/typing.py
+2
-10
mmdet3d/visualization/__init__.py
mmdet3d/visualization/__init__.py
+11
-0
mmdet3d/visualization/local_visualizer.py
mmdet3d/visualization/local_visualizer.py
+31
-32
mmdet3d/visualization/vis_utils.py
mmdet3d/visualization/vis_utils.py
+4
-6
tests/test_core/test_anchor/test_anchors.py
tests/test_core/test_anchor/test_anchors.py
+4
-4
tests/test_core/test_bbox/test_bbox_coders.py
tests/test_core/test_bbox/test_bbox_coders.py
+12
-12
tests/test_core/test_bbox/test_box3d.py
tests/test_core/test_bbox/test_box3d.py
+8
-9
tests/test_core/test_bbox/test_box_np_ops.py
tests/test_core/test_bbox/test_box_np_ops.py
+5
-5
tests/test_core/test_bbox/test_coord_3d_mode.py
tests/test_core/test_bbox/test_coord_3d_mode.py
+4
-4
tests/test_core/test_bbox/test_samplers.py
tests/test_core/test_bbox/test_samplers.py
+2
-2
tests/test_core/test_data_structure/test_det_data_sample.py
tests/test_core/test_data_structure/test_det_data_sample.py
+1
-1
tests/test_core/test_points/test_points.py
tests/test_core/test_points/test_points.py
+2
-2
tests/test_core/test_post_processing/test_merge_augs.py
tests/test_core/test_post_processing/test_merge_augs.py
+2
-2
tests/test_core/test_post_processing/test_nms.py
tests/test_core/test_post_processing/test_nms.py
+4
-4
tests/test_core/test_utils/test_utils.py
tests/test_core/test_utils/test_utils.py
+3
-2
tests/test_data/test_datasets/test_kitti_dataset.py
tests/test_data/test_datasets/test_kitti_dataset.py
+7
-21
tests/test_data/test_datasets/test_lyft_dataset.py
tests/test_data/test_datasets/test_lyft_dataset.py
+1
-2
tests/test_data/test_datasets/test_nuscenes_dataset.py
tests/test_data/test_datasets/test_nuscenes_dataset.py
+1
-2
No files found.
mmdet3d/utils/collect_env.py
View file @
c2fe651f
...
@@ -5,7 +5,6 @@ from mmcv.utils import get_git_hash
...
@@ -5,7 +5,6 @@ from mmcv.utils import get_git_hash
import
mmdet
import
mmdet
import
mmdet3d
import
mmdet3d
import
mmseg
import
mmseg
from
mmdet3d.ops.spconv
import
IS_SPCONV2_AVAILABLE
def
collect_env
():
def
collect_env
():
...
@@ -14,7 +13,9 @@ def collect_env():
...
@@ -14,7 +13,9 @@ def collect_env():
env_info
[
'MMDetection'
]
=
mmdet
.
__version__
env_info
[
'MMDetection'
]
=
mmdet
.
__version__
env_info
[
'MMSegmentation'
]
=
mmseg
.
__version__
env_info
[
'MMSegmentation'
]
=
mmseg
.
__version__
env_info
[
'MMDetection3D'
]
=
mmdet3d
.
__version__
+
'+'
+
get_git_hash
()[:
7
]
env_info
[
'MMDetection3D'
]
=
mmdet3d
.
__version__
+
'+'
+
get_git_hash
()[:
7
]
from
mmdet3d.models.layers.spconv
import
IS_SPCONV2_AVAILABLE
env_info
[
'spconv2.0'
]
=
IS_SPCONV2_AVAILABLE
env_info
[
'spconv2.0'
]
=
IS_SPCONV2_AVAILABLE
return
env_info
return
env_info
...
...
mmdet3d/utils/setup_env.py
View file @
c2fe651f
# Copyright (c) OpenMMLab. All rights reserved.
# Copyright (c) OpenMMLab. All rights reserved.
import
datetime
import
datetime
import
os
import
os
import
platform
import
platform
...
@@ -66,12 +67,11 @@ def register_all_modules(init_default_scope: bool = True) -> None:
...
@@ -66,12 +67,11 @@ def register_all_modules(init_default_scope: bool = True) -> None:
to https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/registry.md
to https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/registry.md
Defaults to True.
Defaults to True.
"""
# noqa
"""
# noqa
import
mmdet3d.core
# noqa: F401,F403
import
mmdet3d.datasets
# noqa: F401,F403
import
mmdet3d.datasets
# noqa: F401,F403
import
mmdet3d.
metrics
# noqa: F401,F403
import
mmdet3d.
engine.scheduler
# noqa: F401,F403
import
mmdet3d.
model
s
# noqa: F401,F403
import
mmdet3d.
evaluation.metric
s
# noqa: F401,F403
import
mmdet3d.
op
s
# noqa: F401,F403
import
mmdet3d.
structure
s
# noqa: F401,F403
import
mmdet3d.
scheduler
# noqa: F401,F403
import
mmdet3d.
visualization
# noqa: F401,F403
if
init_default_scope
:
if
init_default_scope
:
never_created
=
DefaultScope
.
get_current_instance
()
is
None
\
never_created
=
DefaultScope
.
get_current_instance
()
is
None
\
or
not
DefaultScope
.
check_instance_created
(
'mmdet3d'
)
or
not
DefaultScope
.
check_instance_created
(
'mmdet3d'
)
...
...
mmdet3d/
core/
utils/typing.py
→
mmdet3d/utils/typing.py
View file @
c2fe651f
# Copyright (c) OpenMMLab. All rights reserved.
# Copyright (c) OpenMMLab. All rights reserved.
"""Collecting some commonly used type hint in MMDetection3D."""
"""Collecting some commonly used type hint in MMDetection3D."""
from
typing
import
Dict
,
List
,
Optional
,
Tuple
,
Union
from
typing
import
List
,
Optional
,
Union
import
torch
from
mmengine.config
import
ConfigDict
from
mmengine.config
import
ConfigDict
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
..bbox.samplers
import
SamplingResult
from
mmdet.models.task_modules
import
SamplingResult
from
..data_structures
import
Det3DDataSample
# Type hint of config data
# Type hint of config data
ConfigType
=
Union
[
ConfigDict
,
dict
]
ConfigType
=
Union
[
ConfigDict
,
dict
]
...
@@ -20,12 +18,6 @@ OptMultiConfig = Optional[MultiConfig]
...
@@ -20,12 +18,6 @@ OptMultiConfig = Optional[MultiConfig]
InstanceList
=
List
[
InstanceData
]
InstanceList
=
List
[
InstanceData
]
OptInstanceList
=
Optional
[
InstanceList
]
OptInstanceList
=
Optional
[
InstanceList
]
SampleList
=
List
[
Det3DDataSample
]
OptSampleList
=
Optional
[
SampleList
]
SamplingResultList
=
List
[
SamplingResult
]
SamplingResultList
=
List
[
SamplingResult
]
OptSamplingResultList
=
Optional
[
SamplingResultList
]
OptSamplingResultList
=
Optional
[
SamplingResultList
]
ForwardResults
=
Union
[
Dict
[
str
,
torch
.
Tensor
],
List
[
Det3DDataSample
],
Tuple
[
torch
.
Tensor
],
torch
.
Tensor
]
mmdet3d/
core/
visualization/__init__.py
→
mmdet3d/visualization/__init__.py
View file @
c2fe651f
# Copyright (c) OpenMMLab. All rights reserved.
# Copyright (c) OpenMMLab. All rights reserved.
from
.local_visualizer
import
Det3DLocalVisualizer
from
.local_visualizer
import
Det3DLocalVisualizer
from
.vis_utils
import
(
proj_camera_bbox3d_to_img
,
proj_depth_bbox3d_to_img
,
from
.vis_utils
import
(
proj_camera_bbox3d_to_img
,
proj_depth_bbox3d_to_img
,
proj_lidar_bbox3d_to_img
,
write_obj
,
proj_lidar_bbox3d_to_img
,
to_depth_mode
,
write_obj
,
write_oriented_bbox
)
write_oriented_bbox
)
__all__
=
[
__all__
=
[
'Det3DLocalVisualizer'
,
'
proj_depth_bbox3d_to_img
'
,
'Det3DLocalVisualizer'
,
'
write_obj'
,
'write_oriented_bbox
'
,
'
proj_camera
_bbox3d_to_img'
,
'proj_
lidar
_bbox3d_to_img'
,
'
to_depth_mode'
,
'proj_lidar
_bbox3d_to_img'
,
'proj_
depth
_bbox3d_to_img'
,
'
write_oriented_bbox'
,
'write_obj
'
'
proj_camera_bbox3d_to_img
'
]
]
mmdet3d/
core/
visualization/local_visualizer.py
→
mmdet3d/visualization/local_visualizer.py
View file @
c2fe651f
...
@@ -8,6 +8,8 @@ import numpy as np
...
@@ -8,6 +8,8 @@ import numpy as np
from
mmengine.dist
import
master_only
from
mmengine.dist
import
master_only
from
torch
import
Tensor
from
torch
import
Tensor
from
mmdet.visualization
import
DetLocalVisualizer
try
:
try
:
import
open3d
as
o3d
import
open3d
as
o3d
from
open3d
import
geometry
from
open3d
import
geometry
...
@@ -18,10 +20,9 @@ except ImportError:
...
@@ -18,10 +20,9 @@ except ImportError:
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
mmengine.visualization.utils
import
check_type
,
tensor2ndarray
from
mmengine.visualization.utils
import
check_type
,
tensor2ndarray
from
mmdet3d.core
import
(
BaseInstance3DBoxes
,
DepthInstance3DBoxes
,
Det3DDataSample
,
PixelData
)
from
mmdet3d.registry
import
VISUALIZERS
from
mmdet3d.registry
import
VISUALIZERS
from
mmdet.core.visualization
import
DetLocalVisualizer
from
mmdet3d.structures
import
(
BaseInstance3DBoxes
,
DepthInstance3DBoxes
,
Det3DDataSample
,
PointData
)
from
.vis_utils
import
(
proj_camera_bbox3d_to_img
,
proj_depth_bbox3d_to_img
,
from
.vis_utils
import
(
proj_camera_bbox3d_to_img
,
proj_depth_bbox3d_to_img
,
proj_lidar_bbox3d_to_img
,
to_depth_mode
,
write_obj
,
proj_lidar_bbox3d_to_img
,
to_depth_mode
,
write_obj
,
write_oriented_bbox
)
write_oriented_bbox
)
...
@@ -35,6 +36,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -35,6 +36,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
- draw_bboxes_3d: draw 3D bounding boxes on point clouds
- draw_bboxes_3d: draw 3D bounding boxes on point clouds
- draw_proj_bboxes_3d: draw projected 3D bounding boxes on image
- draw_proj_bboxes_3d: draw projected 3D bounding boxes on image
- draw_seg_mask: draw segmentation mask via per-point colorization
Args:
Args:
name (str): Name of the instance. Defaults to 'visualizer'.
name (str): Name of the instance. Defaults to 'visualizer'.
...
@@ -54,6 +56,9 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -54,6 +56,9 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
Defaults to None.
Defaults to None.
line_width (int, float): The linewidth of lines.
line_width (int, float): The linewidth of lines.
Defaults to 3.
Defaults to 3.
vis_cfg (dict): The coordinate frame config while Open3D
visualization initialization.
Defaults to dict(size=1, origin=[0, 0, 0]).
alpha (int, float): The transparency of bboxes or mask.
alpha (int, float): The transparency of bboxes or mask.
Defaults to 0.8.
Defaults to 0.8.
...
@@ -61,33 +66,21 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -61,33 +66,21 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
>>> import numpy as np
>>> import numpy as np
>>> import torch
>>> import torch
>>> from mmengine.data import InstanceData
>>> from mmengine.data import InstanceData
>>> from mmdet3d.
co
re import Det3DDataSample
>>> from mmdet3d.
structu
re
s
import Det3DDataSample
>>> from mmdet3d.
core
import Det3DLocalVisualizer
>>> from mmdet3d.
visualization
import Det3DLocalVisualizer
>>> det3d_local_visualizer = Det3DLocalVisualizer()
>>> det3d_local_visualizer = Det3DLocalVisualizer()
>>> image = np.random.randint(0, 256,
>>> image = np.random.randint(0, 256,
... size=(10, 12, 3)).astype('uint8')
... size=(10, 12, 3)).astype('uint8')
>>> points = np.random.rand((1000, ))
>>> gt_instances_3d = InstanceData()
>>> gt_instances_3d = InstanceData()
>>> gt_instances_3d.bboxes_3d = BaseInstance3DBoxes(torch.rand((5, 7)))
>>> gt_instances_3d.bboxes_3d = BaseInstance3DBoxes(torch.rand((5, 7)))
>>> gt_instances_3d.labels_3d = torch.randint(0, 2, (
1
,))
>>> gt_instances_3d.labels_3d = torch.randint(0, 2, (
5
,))
>>> gt_det3d_data_sample = Det3DDataSample()
>>> gt_det3d_data_sample = Det3DDataSample()
>>> gt_det3d_data_sample.gt_instances_3d = gt_instances_3d
>>> gt_det3d_data_sample.gt_instances_3d = gt_instances_3d
>>> det3d_local_visualizer.add_datasample('image', image,
>>> data_input = dict(img=image, points=points)
... gt_det_data_sample)
>>> det3d_local_visualizer.add_datasample('3D Scene', data_input,
>>> det3d_local_visualizer.add_datasample(
... gt_det3d_data_sample)
... 'image', image, gt_det_data_sample,
... out_file='out_file.jpg')
>>> det3d_local_visualizer.add_datasample(
... 'image', image, gt_det_data_sample,
... show=True)
>>> pred_instances = InstanceData()
>>> pred_instances.bboxes_3d = torch.Tensor([[2, 4, 4, 8]])
>>> pred_instances.labels_3d = torch.randint(0, 2, (1,))
>>> pred_det_data_sample = Det3DDataSample()
>>> pred_det_data_sample.pred_instances = pred_instances
>>> det_local_visualizer.add_datasample('image', image,
... gt_det_data_sample,
... pred_det_data_sample)
"""
"""
def
__init__
(
self
,
def
__init__
(
self
,
...
@@ -100,7 +93,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -100,7 +93,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
Tuple
[
int
]]]
=
(
200
,
200
,
200
),
Tuple
[
int
]]]
=
(
200
,
200
,
200
),
mask_color
:
Optional
[
Union
[
str
,
Tuple
[
int
]]]
=
None
,
mask_color
:
Optional
[
Union
[
str
,
Tuple
[
int
]]]
=
None
,
line_width
:
Union
[
int
,
float
]
=
3
,
line_width
:
Union
[
int
,
float
]
=
3
,
vis_cfg
:
Optional
[
D
ict
]
=
None
,
vis_cfg
:
d
ict
=
dict
(
size
=
1
,
origin
=
[
0
,
0
,
0
])
,
alpha
:
float
=
0.8
):
alpha
:
float
=
0.8
):
super
().
__init__
(
super
().
__init__
(
name
=
name
,
name
=
name
,
...
@@ -127,7 +120,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -127,7 +120,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
o3d_vis
=
o3d
.
visualization
.
Visualizer
()
o3d_vis
=
o3d
.
visualization
.
Visualizer
()
o3d_vis
.
create_window
()
o3d_vis
.
create_window
()
# create coordinate frame
# create coordinate frame
mesh_frame
=
geometry
.
TriangleMesh
.
create_coordinate_frame
(
vis_cfg
)
mesh_frame
=
geometry
.
TriangleMesh
.
create_coordinate_frame
(
**
vis_cfg
)
o3d_vis
.
add_geometry
(
mesh_frame
)
o3d_vis
.
add_geometry
(
mesh_frame
)
return
o3d_vis
return
o3d_vis
...
@@ -374,8 +367,10 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -374,8 +367,10 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
if
vis_task
in
[
'mono-det'
,
'multi_modality-det'
]:
if
vis_task
in
[
'mono-det'
,
'multi_modality-det'
]:
assert
'img'
in
data_input
assert
'img'
in
data_input
image
=
data_input
[
'img'
]
if
isinstance
(
data_input
[
'img'
],
Tensor
):
self
.
set_image
(
image
)
img
=
data_input
[
'img'
].
permute
(
1
,
2
,
0
).
numpy
()
img
=
img
[...,
[
2
,
1
,
0
]]
# bgr to rgb
self
.
set_image
(
img
)
self
.
draw_proj_bboxes_3d
(
bboxes_3d
,
input_meta
)
self
.
draw_proj_bboxes_3d
(
bboxes_3d
,
input_meta
)
drawn_img
=
self
.
get_image
()
drawn_img
=
self
.
get_image
()
...
@@ -385,7 +380,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -385,7 +380,7 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
def
_draw_pts_sem_seg
(
self
,
def
_draw_pts_sem_seg
(
self
,
points
:
Tensor
,
points
:
Tensor
,
pts_seg
:
P
ixel
Data
,
pts_seg
:
P
oint
Data
,
vis_task
:
str
,
vis_task
:
str
,
palette
:
Optional
[
List
[
tuple
]]
=
None
,
palette
:
Optional
[
List
[
tuple
]]
=
None
,
ignore_index
:
Optional
[
int
]
=
None
):
ignore_index
:
Optional
[
int
]
=
None
):
...
@@ -503,8 +498,10 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -503,8 +498,10 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
vis_task
,
palette
)
vis_task
,
palette
)
if
'gt_instances'
in
gt_sample
:
if
'gt_instances'
in
gt_sample
:
assert
'img'
in
data_input
assert
'img'
in
data_input
gt_img_data
=
self
.
_draw_instances
(
data_input
[
'img'
],
if
isinstance
(
data_input
[
'img'
],
Tensor
):
gt_sample
.
gt_instances
,
img
=
data_input
[
'img'
].
permute
(
1
,
2
,
0
).
numpy
()
img
=
img
[...,
[
2
,
1
,
0
]]
# bgr to rgb
gt_img_data
=
self
.
_draw_instances
(
img
,
gt_sample
.
gt_instances
,
classes
,
palette
)
classes
,
palette
)
if
'gt_pts_sem_seg'
in
gt_sample
:
if
'gt_pts_sem_seg'
in
gt_sample
:
assert
classes
is
not
None
,
'class information is '
\
assert
classes
is
not
None
,
'class information is '
\
...
@@ -532,9 +529,11 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
...
@@ -532,9 +529,11 @@ class Det3DLocalVisualizer(DetLocalVisualizer):
pred_instances
=
pred_sample
.
pred_instances
pred_instances
=
pred_sample
.
pred_instances
pred_instances
=
pred_instances_3d
[
pred_instances
=
pred_instances_3d
[
pred_instances
.
scores
>
pred_score_thr
].
cpu
()
pred_instances
.
scores
>
pred_score_thr
].
cpu
()
pred_img_data
=
self
.
_draw_instances
(
data_input
[
'img'
],
if
isinstance
(
data_input
[
'img'
],
Tensor
):
pred_instances
,
classes
,
img
=
data_input
[
'img'
].
permute
(
1
,
2
,
0
).
numpy
()
palette
)
img
=
img
[...,
[
2
,
1
,
0
]]
# bgr to rgb
pred_img_data
=
self
.
_draw_instances
(
img
,
pred_instances
,
classes
,
palette
)
if
'pred_pts_sem_seg'
in
pred_sample
:
if
'pred_pts_sem_seg'
in
pred_sample
:
assert
classes
is
not
None
,
'class information is '
\
assert
classes
is
not
None
,
'class information is '
\
'not provided when '
\
'not provided when '
\
...
...
mmdet3d/
core/
visualization/vis_utils.py
→
mmdet3d/visualization/vis_utils.py
View file @
c2fe651f
...
@@ -5,10 +5,8 @@ import numpy as np
...
@@ -5,10 +5,8 @@ import numpy as np
import
torch
import
torch
import
trimesh
import
trimesh
from
mmdet3d.core.bbox
import
Box3DMode
,
Coord3DMode
from
mmdet3d.structures
import
(
Box3DMode
,
CameraInstance3DBoxes
,
Coord3DMode
,
from
mmdet3d.core.bbox.structures.cam_box3d
import
CameraInstance3DBoxes
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
)
from
mmdet3d.core.bbox.structures.depth_box3d
import
DepthInstance3DBoxes
from
mmdet3d.core.bbox.structures.lidar_box3d
import
LiDARInstance3DBoxes
def
write_obj
(
points
,
out_filename
):
def
write_obj
(
points
,
out_filename
):
...
@@ -125,8 +123,8 @@ def proj_depth_bbox3d_to_img(bboxes_3d: DepthInstance3DBoxes,
...
@@ -125,8 +123,8 @@ def proj_depth_bbox3d_to_img(bboxes_3d: DepthInstance3DBoxes,
3d bbox in depth coordinate system to visualize.
3d bbox in depth coordinate system to visualize.
input_meta (dict): Used in coordinates transformation.
input_meta (dict): Used in coordinates transformation.
"""
"""
from
mmdet3d.core.bbox
import
points_cam2img
from
mmdet3d.models
import
apply_3d_transformation
from
mmdet3d.models
import
apply_3d_transformation
from
mmdet3d.structures
import
points_cam2img
input_meta
=
copy
.
deepcopy
(
input_meta
)
input_meta
=
copy
.
deepcopy
(
input_meta
)
corners_3d
=
bboxes_3d
.
corners
corners_3d
=
bboxes_3d
.
corners
...
@@ -157,7 +155,7 @@ def proj_camera_bbox3d_to_img(bboxes_3d: CameraInstance3DBoxes,
...
@@ -157,7 +155,7 @@ def proj_camera_bbox3d_to_img(bboxes_3d: CameraInstance3DBoxes,
cam2img (np.array)): Camera intrinsic matrix,
cam2img (np.array)): Camera intrinsic matrix,
denoted as `K` in depth bbox coordinate system.
denoted as `K` in depth bbox coordinate system.
"""
"""
from
mmdet3d.
core.bbox
import
points_cam2img
from
mmdet3d.
structures
import
points_cam2img
cam2img
=
copy
.
deepcopy
(
input_meta
[
'cam2img'
])
cam2img
=
copy
.
deepcopy
(
input_meta
[
'cam2img'
])
corners_3d
=
bboxes_3d
.
corners
corners_3d
=
bboxes_3d
.
corners
...
...
tests/test_core/test_anchor/test_anchors.py
View file @
c2fe651f
...
@@ -7,7 +7,7 @@ CommandLine:
...
@@ -7,7 +7,7 @@ CommandLine:
"""
"""
import
torch
import
torch
from
mmdet3d.
core.anchor
import
build_prior_generator
from
mmdet3d.
registry
import
TASK_UTILS
def
test_anchor_3d_range_generator
():
def
test_anchor_3d_range_generator
():
...
@@ -26,7 +26,7 @@ def test_anchor_3d_range_generator():
...
@@ -26,7 +26,7 @@ def test_anchor_3d_range_generator():
rotations
=
[
0
,
1.57
],
rotations
=
[
0
,
1.57
],
reshape_out
=
False
)
reshape_out
=
False
)
anchor_generator
=
build_prior_generator
(
anchor_generator_cfg
)
anchor_generator
=
TASK_UTILS
.
build
(
anchor_generator_cfg
)
repr_str
=
repr
(
anchor_generator
)
repr_str
=
repr
(
anchor_generator
)
expected_repr_str
=
'Anchor3DRangeGenerator(anchor_range='
\
expected_repr_str
=
'Anchor3DRangeGenerator(anchor_range='
\
'[[0, -39.68, -0.6, 70.4, 39.68, -0.6], '
\
'[[0, -39.68, -0.6, 70.4, 39.68, -0.6], '
\
...
@@ -65,7 +65,7 @@ def test_aligned_anchor_generator():
...
@@ -65,7 +65,7 @@ def test_aligned_anchor_generator():
reshape_out
=
True
)
reshape_out
=
True
)
featmap_sizes
=
[(
256
,
256
),
(
128
,
128
),
(
64
,
64
)]
featmap_sizes
=
[(
256
,
256
),
(
128
,
128
),
(
64
,
64
)]
anchor_generator
=
build_prior_generator
(
anchor_generator_cfg
)
anchor_generator
=
TASK_UTILS
.
build
(
anchor_generator_cfg
)
assert
anchor_generator
.
num_base_anchors
==
8
assert
anchor_generator
.
num_base_anchors
==
8
# check base anchors
# check base anchors
...
@@ -200,7 +200,7 @@ def test_aligned_anchor_generator_per_cls():
...
@@ -200,7 +200,7 @@ def test_aligned_anchor_generator_per_cls():
reshape_out
=
False
)
reshape_out
=
False
)
featmap_sizes
=
[(
100
,
100
),
(
50
,
50
)]
featmap_sizes
=
[(
100
,
100
),
(
50
,
50
)]
anchor_generator
=
build_prior_generator
(
anchor_generator_cfg
)
anchor_generator
=
TASK_UTILS
.
build
(
anchor_generator_cfg
)
# check base anchors
# check base anchors
expected_grid_anchors
=
[[
expected_grid_anchors
=
[[
...
...
tests/test_core/test_bbox/test_bbox_coders.py
View file @
c2fe651f
...
@@ -4,9 +4,9 @@ import torch
...
@@ -4,9 +4,9 @@ import torch
from
mmcv.cnn
import
Scale
from
mmcv.cnn
import
Scale
from
torch
import
nn
as
nn
from
torch
import
nn
as
nn
from
mmdet3d.
core
import
build_bbox_coder
from
mmdet3d.
registry
import
TASK_UTILS
from
mmdet3d.
core.bbox
import
(
CameraInstance3DBoxes
,
DepthInstance3DBoxes
,
from
mmdet3d.
structures
import
(
CameraInstance3DBoxes
,
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
)
LiDARInstance3DBoxes
)
def
test_partial_bin_based_box_coder
():
def
test_partial_bin_based_box_coder
():
...
@@ -25,7 +25,7 @@ def test_partial_bin_based_box_coder():
...
@@ -25,7 +25,7 @@ def test_partial_bin_based_box_coder():
[
0.500618
,
0.632163
,
0.683424
],
[
0.500618
,
0.632163
,
0.683424
],
[
0.404671
,
1.071108
,
1.688889
],
[
0.404671
,
1.071108
,
1.688889
],
[
0.76584
,
1.398258
,
0.472728
]])
[
0.76584
,
1.398258
,
0.472728
]])
box_coder
=
build_bbox_coder
(
box_coder_cfg
)
box_coder
=
TASK_UTILS
.
build
(
box_coder_cfg
)
# test eocode
# test eocode
gt_bboxes
=
DepthInstance3DBoxes
(
gt_bboxes
=
DepthInstance3DBoxes
(
...
@@ -226,7 +226,7 @@ def test_partial_bin_based_box_coder():
...
@@ -226,7 +226,7 @@ def test_partial_bin_based_box_coder():
def
test_anchor_free_box_coder
():
def
test_anchor_free_box_coder
():
box_coder_cfg
=
dict
(
box_coder_cfg
=
dict
(
type
=
'AnchorFreeBBoxCoder'
,
num_dir_bins
=
12
,
with_rot
=
True
)
type
=
'AnchorFreeBBoxCoder'
,
num_dir_bins
=
12
,
with_rot
=
True
)
box_coder
=
build_bbox_coder
(
box_coder_cfg
)
box_coder
=
TASK_UTILS
.
build
(
box_coder_cfg
)
# test encode
# test encode
gt_bboxes
=
LiDARInstance3DBoxes
([[
gt_bboxes
=
LiDARInstance3DBoxes
([[
...
@@ -340,7 +340,7 @@ def test_centerpoint_bbox_coder():
...
@@ -340,7 +340,7 @@ def test_centerpoint_bbox_coder():
out_size_factor
=
4
,
out_size_factor
=
4
,
voxel_size
=
[
0.2
,
0.2
])
voxel_size
=
[
0.2
,
0.2
])
bbox_coder
=
build_bbox_coder
(
bbox_coder_cfg
)
bbox_coder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
batch_dim
=
torch
.
rand
([
2
,
3
,
128
,
128
])
batch_dim
=
torch
.
rand
([
2
,
3
,
128
,
128
])
batch_hei
=
torch
.
rand
([
2
,
1
,
128
,
128
])
batch_hei
=
torch
.
rand
([
2
,
1
,
128
,
128
])
...
@@ -363,7 +363,7 @@ def test_point_xyzwhlr_bbox_coder():
...
@@ -363,7 +363,7 @@ def test_point_xyzwhlr_bbox_coder():
type
=
'PointXYZWHLRBBoxCoder'
,
type
=
'PointXYZWHLRBBoxCoder'
,
use_mean_size
=
True
,
use_mean_size
=
True
,
mean_size
=
[[
3.9
,
1.6
,
1.56
],
[
0.8
,
0.6
,
1.73
],
[
1.76
,
0.6
,
1.73
]])
mean_size
=
[[
3.9
,
1.6
,
1.56
],
[
0.8
,
0.6
,
1.73
],
[
1.76
,
0.6
,
1.73
]])
boxcoder
=
build_bbox_coder
(
bbox_coder_cfg
)
boxcoder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
# test encode
# test encode
gt_bboxes_3d
=
torch
.
tensor
(
gt_bboxes_3d
=
torch
.
tensor
(
...
@@ -396,7 +396,7 @@ def test_fcos3d_bbox_coder():
...
@@ -396,7 +396,7 @@ def test_fcos3d_bbox_coder():
base_dims
=
None
,
base_dims
=
None
,
code_size
=
7
,
code_size
=
7
,
norm_on_bbox
=
True
)
norm_on_bbox
=
True
)
bbox_coder
=
build_bbox_coder
(
bbox_coder_cfg
)
bbox_coder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
# test decode
# test decode
# [2, 7, 1, 1]
# [2, 7, 1, 1]
...
@@ -426,7 +426,7 @@ def test_fcos3d_bbox_coder():
...
@@ -426,7 +426,7 @@ def test_fcos3d_bbox_coder():
base_dims
=
((
2.
,
3.
,
1.
),
(
1.
,
2.
,
3.
)),
base_dims
=
((
2.
,
3.
,
1.
),
(
1.
,
2.
,
3.
)),
code_size
=
7
,
code_size
=
7
,
norm_on_bbox
=
True
)
norm_on_bbox
=
True
)
prior_bbox_coder
=
build_bbox_coder
(
prior_bbox_coder_cfg
)
prior_bbox_coder
=
TASK_UTILS
.
build
(
prior_bbox_coder_cfg
)
# test decode
# test decode
batch_bbox
=
torch
.
tensor
([[[[
0.3130
]],
[[
0.7094
]],
[[
0.8743
]],
[[
0.0570
]],
batch_bbox
=
torch
.
tensor
([[[[
0.3130
]],
[[
0.7094
]],
[[
0.8743
]],
[[
0.0570
]],
...
@@ -472,7 +472,7 @@ def test_pgd_bbox_coder():
...
@@ -472,7 +472,7 @@ def test_pgd_bbox_coder():
base_dims
=
None
,
base_dims
=
None
,
code_size
=
7
,
code_size
=
7
,
norm_on_bbox
=
True
)
norm_on_bbox
=
True
)
bbox_coder
=
build_bbox_coder
(
bbox_coder_cfg
)
bbox_coder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
# test decode_2d
# test decode_2d
# [2, 27, 1, 1]
# [2, 27, 1, 1]
...
@@ -575,7 +575,7 @@ def test_smoke_bbox_coder():
...
@@ -575,7 +575,7 @@ def test_smoke_bbox_coder():
base_dims
=
((
3.88
,
1.63
,
1.53
),
(
1.78
,
1.70
,
0.58
),
(
0.88
,
1.73
,
0.67
)),
base_dims
=
((
3.88
,
1.63
,
1.53
),
(
1.78
,
1.70
,
0.58
),
(
0.88
,
1.73
,
0.67
)),
code_size
=
7
)
code_size
=
7
)
bbox_coder
=
build_bbox_coder
(
bbox_coder_cfg
)
bbox_coder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
regression
=
torch
.
rand
([
200
,
8
])
regression
=
torch
.
rand
([
200
,
8
])
points
=
torch
.
rand
([
200
,
2
])
points
=
torch
.
rand
([
200
,
2
])
labels
=
torch
.
ones
([
2
,
100
])
labels
=
torch
.
ones
([
2
,
100
])
...
@@ -616,7 +616,7 @@ def test_monoflex_bbox_coder():
...
@@ -616,7 +616,7 @@ def test_monoflex_bbox_coder():
bin_centers
=
[
0
,
np
.
pi
/
2
,
np
.
pi
,
-
np
.
pi
/
2
],
bin_centers
=
[
0
,
np
.
pi
/
2
,
np
.
pi
,
-
np
.
pi
/
2
],
bin_margin
=
np
.
pi
/
6
,
bin_margin
=
np
.
pi
/
6
,
code_size
=
7
)
code_size
=
7
)
bbox_coder
=
build_bbox_coder
(
bbox_coder_cfg
)
bbox_coder
=
TASK_UTILS
.
build
(
bbox_coder_cfg
)
gt_bboxes_3d
=
CameraInstance3DBoxes
(
torch
.
rand
([
6
,
7
]))
gt_bboxes_3d
=
CameraInstance3DBoxes
(
torch
.
rand
([
6
,
7
]))
orientation_target
=
bbox_coder
.
encode
(
gt_bboxes_3d
)
orientation_target
=
bbox_coder
.
encode
(
gt_bboxes_3d
)
assert
orientation_target
.
shape
==
torch
.
Size
([
6
,
8
])
assert
orientation_target
.
shape
==
torch
.
Size
([
6
,
8
])
...
...
tests/test_core/test_bbox/test_box3d.py
View file @
c2fe651f
...
@@ -5,15 +5,14 @@ import numpy as np
...
@@ -5,15 +5,14 @@ import numpy as np
import
pytest
import
pytest
import
torch
import
torch
from
mmdet3d.core.bbox
import
(
BaseInstance3DBoxes
,
Box3DMode
,
from
mmdet3d.structures
import
(
BaseInstance3DBoxes
,
Box3DMode
,
CameraInstance3DBoxes
,
Coord3DMode
,
CameraInstance3DBoxes
,
Coord3DMode
,
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
,
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
,
bbox3d2roi
,
bbox3d_mapping_back
)
bbox3d2roi
,
bbox3d_mapping_back
)
from
mmdet3d.core.bbox.structures.utils
import
(
get_box_type
,
limit_period
,
from
mmdet3d.structures.bbox_3d.utils
import
(
get_box_type
,
limit_period
,
points_cam2img
,
points_cam2img
,
rotation_3d_in_axis
,
rotation_3d_in_axis
,
xywhr2xyxyr
)
xywhr2xyxyr
)
from
mmdet3d.structures.points
import
CameraPoints
,
DepthPoints
,
LiDARPoints
from
mmdet3d.core.points
import
CameraPoints
,
DepthPoints
,
LiDARPoints
def
test_bbox3d_mapping_back
():
def
test_bbox3d_mapping_back
():
...
...
tests/test_core/test_bbox/test_box_np_ops.py
View file @
c2fe651f
...
@@ -3,7 +3,7 @@ import numpy as np
...
@@ -3,7 +3,7 @@ import numpy as np
def
test_camera_to_lidar
():
def
test_camera_to_lidar
():
from
mmdet3d.
core.bbox
.box_np_ops
import
camera_to_lidar
from
mmdet3d.
structures.ops
.box_np_ops
import
camera_to_lidar
points
=
np
.
array
([[
1.84
,
1.47
,
8.41
]])
points
=
np
.
array
([[
1.84
,
1.47
,
8.41
]])
rect
=
np
.
array
([[
0.9999128
,
0.01009263
,
-
0.00851193
,
0.
],
rect
=
np
.
array
([[
0.9999128
,
0.01009263
,
-
0.00851193
,
0.
],
[
-
0.01012729
,
0.9999406
,
-
0.00403767
,
0.
],
[
-
0.01012729
,
0.9999406
,
-
0.00403767
,
0.
],
...
@@ -19,7 +19,7 @@ def test_camera_to_lidar():
...
@@ -19,7 +19,7 @@ def test_camera_to_lidar():
def
test_box_camera_to_lidar
():
def
test_box_camera_to_lidar
():
from
mmdet3d.
core.bbox
.box_np_ops
import
box_camera_to_lidar
from
mmdet3d.
structures.ops
.box_np_ops
import
box_camera_to_lidar
box
=
np
.
array
([[
1.84
,
1.47
,
8.41
,
1.2
,
1.89
,
0.48
,
-
0.01
]])
box
=
np
.
array
([[
1.84
,
1.47
,
8.41
,
1.2
,
1.89
,
0.48
,
-
0.01
]])
rect
=
np
.
array
([[
0.9999128
,
0.01009263
,
-
0.00851193
,
0.
],
rect
=
np
.
array
([[
0.9999128
,
0.01009263
,
-
0.00851193
,
0.
],
[
-
0.01012729
,
0.9999406
,
-
0.00403767
,
0.
],
[
-
0.01012729
,
0.9999406
,
-
0.00403767
,
0.
],
...
@@ -37,7 +37,7 @@ def test_box_camera_to_lidar():
...
@@ -37,7 +37,7 @@ def test_box_camera_to_lidar():
def
test_corners_nd
():
def
test_corners_nd
():
from
mmdet3d.
core.bbox
.box_np_ops
import
corners_nd
from
mmdet3d.
structures.ops
.box_np_ops
import
corners_nd
dims
=
np
.
array
([[
0.47
,
0.98
]])
dims
=
np
.
array
([[
0.47
,
0.98
]])
corners
=
corners_nd
(
dims
)
corners
=
corners_nd
(
dims
)
expected_corners
=
np
.
array
([[[
-
0.235
,
-
0.49
],
[
-
0.235
,
0.49
],
expected_corners
=
np
.
array
([[[
-
0.235
,
-
0.49
],
[
-
0.235
,
0.49
],
...
@@ -46,7 +46,7 @@ def test_corners_nd():
...
@@ -46,7 +46,7 @@ def test_corners_nd():
def
test_center_to_corner_box2d
():
def
test_center_to_corner_box2d
():
from
mmdet3d.
core.bbox
.box_np_ops
import
center_to_corner_box2d
from
mmdet3d.
structures.ops
.box_np_ops
import
center_to_corner_box2d
center
=
np
.
array
([[
9.348705
,
-
3.6271024
]])
center
=
np
.
array
([[
9.348705
,
-
3.6271024
]])
dims
=
np
.
array
([[
0.47
,
0.98
]])
dims
=
np
.
array
([[
0.47
,
0.98
]])
angles
=
np
.
array
([
3.14
])
angles
=
np
.
array
([
3.14
])
...
@@ -66,7 +66,7 @@ def test_center_to_corner_box2d():
...
@@ -66,7 +66,7 @@ def test_center_to_corner_box2d():
def
test_points_in_convex_polygon_jit
():
def
test_points_in_convex_polygon_jit
():
from
mmdet3d.
core.bbox
.box_np_ops
import
points_in_convex_polygon_jit
from
mmdet3d.
structures.ops
.box_np_ops
import
points_in_convex_polygon_jit
points
=
np
.
array
([[
0.4
,
0.4
],
[
0.5
,
0.5
],
[
0.6
,
0.6
]])
points
=
np
.
array
([[
0.4
,
0.4
],
[
0.5
,
0.5
],
[
0.6
,
0.6
]])
polygons
=
np
.
array
([[[
1.0
,
0.0
],
[
0.0
,
1.0
],
[
0.0
,
0.5
],
[
0.0
,
0.0
]],
polygons
=
np
.
array
([[[
1.0
,
0.0
],
[
0.0
,
1.0
],
[
0.0
,
0.5
],
[
0.0
,
0.0
]],
[[
1.0
,
0.0
],
[
1.0
,
1.0
],
[
0.5
,
1.0
],
[
0.0
,
1.0
]],
[[
1.0
,
0.0
],
[
1.0
,
1.0
],
[
0.5
,
1.0
],
[
0.0
,
1.0
]],
...
...
tests/test_core/test_bbox/test_coord_3d_mode.py
View file @
c2fe651f
...
@@ -2,10 +2,10 @@
...
@@ -2,10 +2,10 @@
import
numpy
as
np
import
numpy
as
np
import
torch
import
torch
from
mmdet3d.
core.bbox
import
(
CameraInstance3DBoxes
,
Coord3DMode
,
from
mmdet3d.
structures
import
(
CameraInstance3DBoxes
,
Coord3DMode
,
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
,
DepthInstance3DBoxes
,
LiDARInstance3DBoxes
,
limit_period
)
limit_period
)
from
mmdet3d.
co
re.points
import
CameraPoints
,
DepthPoints
,
LiDARPoints
from
mmdet3d.
structu
re
s
.points
import
CameraPoints
,
DepthPoints
,
LiDARPoints
def
test_points_conversion
():
def
test_points_conversion
():
...
...
tests/test_core/test_bbox/test_samplers.py
View file @
c2fe651f
...
@@ -3,8 +3,8 @@ import pytest
...
@@ -3,8 +3,8 @@ import pytest
import
torch
import
torch
from
mmengine
import
InstanceData
from
mmengine
import
InstanceData
from
mmdet3d.
core.bbox.assigners
import
Max3DIoUAssign
er
from
mmdet3d.
models.task_modules
import
IoUNegPiecewiseSampl
er
from
mmdet3d.
core.bbox.samplers
import
IoUNegPiecewiseSampl
er
from
mmdet3d.
models.task_modules.assigners
import
Max3DIoUAssign
er
def
test_iou_piecewise_sampler
():
def
test_iou_piecewise_sampler
():
...
...
tests/test_core/test_data_structure/test_det_data_sample.py
View file @
c2fe651f
...
@@ -6,7 +6,7 @@ import pytest
...
@@ -6,7 +6,7 @@ import pytest
import
torch
import
torch
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
mmdet3d.
core.data_
structures
import
Det3DDataSample
,
PointData
from
mmdet3d.structures
import
Det3DDataSample
,
PointData
def
_equal
(
a
,
b
):
def
_equal
(
a
,
b
):
...
...
tests/test_core/test_points/test_points.py
View file @
c2fe651f
...
@@ -3,8 +3,8 @@ import numpy as np
...
@@ -3,8 +3,8 @@ import numpy as np
import
pytest
import
pytest
import
torch
import
torch
from
mmdet3d.
co
re.points
import
(
BasePoints
,
CameraPoints
,
DepthPoints
,
from
mmdet3d.
structu
re
s
.points
import
(
BasePoints
,
CameraPoints
,
DepthPoints
,
LiDARPoints
)
LiDARPoints
)
def
test_base_points
():
def
test_base_points
():
...
...
tests/test_core/test_post_processing/test_merge_augs.py
View file @
c2fe651f
...
@@ -3,8 +3,8 @@ import mmcv
...
@@ -3,8 +3,8 @@ import mmcv
import
pytest
import
pytest
import
torch
import
torch
from
mmdet3d.
core
import
merge_aug_bboxes_3d
from
mmdet3d.
models
import
merge_aug_bboxes_3d
from
mmdet3d.
core.bbox
import
DepthInstance3DBoxes
from
mmdet3d.
structures
import
DepthInstance3DBoxes
def
test_merge_aug_bboxes_3d
():
def
test_merge_aug_bboxes_3d
():
...
...
tests/test_core/test_post_processing/test_nms.py
View file @
c2fe651f
...
@@ -5,7 +5,7 @@ import torch
...
@@ -5,7 +5,7 @@ import torch
def
test_aligned_3d_nms
():
def
test_aligned_3d_nms
():
from
mmdet3d.
core.post_processing
import
aligned_3d_nms
from
mmdet3d.
models.layers
import
aligned_3d_nms
boxes
=
torch
.
tensor
([[
1.2261
,
0.6679
,
-
1.2678
,
2.6547
,
1.0428
,
0.1000
],
boxes
=
torch
.
tensor
([[
1.2261
,
0.6679
,
-
1.2678
,
2.6547
,
1.0428
,
0.1000
],
[
5.0919
,
0.6512
,
0.7238
,
5.4821
,
1.2451
,
2.1095
],
[
5.0919
,
0.6512
,
0.7238
,
5.4821
,
1.2451
,
2.1095
],
...
@@ -61,7 +61,7 @@ def test_aligned_3d_nms():
...
@@ -61,7 +61,7 @@ def test_aligned_3d_nms():
def
test_circle_nms
():
def
test_circle_nms
():
from
mmdet3d.
core.post_processing
import
circle_nms
from
mmdet3d.
models.layers
import
circle_nms
boxes
=
torch
.
tensor
([[
-
11.1100
,
2.1300
,
0.8823
],
boxes
=
torch
.
tensor
([[
-
11.1100
,
2.1300
,
0.8823
],
[
-
11.2810
,
2.2422
,
0.8914
],
[
-
11.2810
,
2.2422
,
0.8914
],
[
-
10.3966
,
-
0.3198
,
0.8643
],
[
-
10.3966
,
-
0.3198
,
0.8643
],
...
@@ -80,7 +80,7 @@ def test_circle_nms():
...
@@ -80,7 +80,7 @@ def test_circle_nms():
@
pytest
.
mark
.
skipif
(
@
pytest
.
mark
.
skipif
(
not
torch
.
cuda
.
is_available
(),
reason
=
'requires CUDA support'
)
not
torch
.
cuda
.
is_available
(),
reason
=
'requires CUDA support'
)
def
test_nms_bev
():
def
test_nms_bev
():
from
mmdet3d.
core.post_processing
import
nms_bev
from
mmdet3d.
models.layers
import
nms_bev
np_boxes
=
np
.
array
(
np_boxes
=
np
.
array
(
[[
6.0
,
3.0
,
8.0
,
7.0
,
2.0
],
[
3.0
,
6.0
,
9.0
,
11.0
,
1.0
],
[[
6.0
,
3.0
,
8.0
,
7.0
,
2.0
],
[
3.0
,
6.0
,
9.0
,
11.0
,
1.0
],
...
@@ -99,7 +99,7 @@ def test_nms_bev():
...
@@ -99,7 +99,7 @@ def test_nms_bev():
@
pytest
.
mark
.
skipif
(
@
pytest
.
mark
.
skipif
(
not
torch
.
cuda
.
is_available
(),
reason
=
'requires CUDA support'
)
not
torch
.
cuda
.
is_available
(),
reason
=
'requires CUDA support'
)
def
test_nms_normal_bev
():
def
test_nms_normal_bev
():
from
mmdet3d.
core.post_processing
import
nms_normal_bev
from
mmdet3d.
models.layers
import
nms_normal_bev
np_boxes
=
np
.
array
(
np_boxes
=
np
.
array
(
[[
6.0
,
3.0
,
8.0
,
7.0
,
2.0
],
[
3.0
,
6.0
,
9.0
,
11.0
,
1.0
],
[[
6.0
,
3.0
,
8.0
,
7.0
,
2.0
],
[
3.0
,
6.0
,
9.0
,
11.0
,
1.0
],
...
...
tests/test_core/test_utils/test_utils.py
View file @
c2fe651f
...
@@ -3,10 +3,11 @@ import numpy as np
...
@@ -3,10 +3,11 @@ import numpy as np
import
pytest
import
pytest
import
torch
import
torch
from
mmdet3d.core
import
array_converter
,
draw_heatmap_gaussian
,
points_img2cam
from
mmdet3d.models
import
draw_heatmap_gaussian
from
mmdet3d.core.bbox
import
CameraInstance3DBoxes
from
mmdet3d.models.utils
import
(
filter_outside_objs
,
get_edge_indices
,
from
mmdet3d.models.utils
import
(
filter_outside_objs
,
get_edge_indices
,
get_keypoints
,
handle_proj_objs
)
get_keypoints
,
handle_proj_objs
)
from
mmdet3d.structures
import
CameraInstance3DBoxes
,
points_img2cam
from
mmdet3d.utils
import
array_converter
def
test_gaussian
():
def
test_gaussian
():
...
...
tests/test_data/test_datasets/test_kitti_dataset.py
View file @
c2fe651f
...
@@ -6,9 +6,8 @@ from mmcv.transforms.base import BaseTransform
...
@@ -6,9 +6,8 @@ from mmcv.transforms.base import BaseTransform
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
mmengine.registry
import
TRANSFORMS
from
mmengine.registry
import
TRANSFORMS
from
mmdet3d.core
import
LiDARInstance3DBoxes
from
mmdet3d.core.data_structures
import
Det3DDataSample
from
mmdet3d.datasets
import
KittiDataset
from
mmdet3d.datasets
import
KittiDataset
from
mmdet3d.structures
import
Det3DDataSample
,
LiDARInstance3DBoxes
def
_generate_kitti_dataset_config
():
def
_generate_kitti_dataset_config
():
...
@@ -72,15 +71,12 @@ def test_getitem():
...
@@ -72,15 +71,12 @@ def test_getitem():
ann_info
=
kitti_dataset
.
parse_ann_info
(
input_dict
)
ann_info
=
kitti_dataset
.
parse_ann_info
(
input_dict
)
# assert the keys in ann_info and the type
# assert the keys in ann_info and the type
assert
'
gt_label
s'
in
ann_info
assert
'
instance
s'
in
ann_info
assert
ann_info
[
'gt_labels'
].
dtype
==
np
.
int64
# only one instance
# only one instance
assert
len
(
ann_info
[
'gt_labels'
])
==
1
assert
(
ann_info
[
'gt_labels'
]
==
0
).
all
()
assert
'gt_labels_3d'
in
ann_info
assert
'gt_labels_3d'
in
ann_info
assert
ann_info
[
'gt_labels_3d'
].
dtype
==
np
.
int64
assert
ann_info
[
'gt_labels_3d'
].
dtype
==
np
.
int64
assert
'gt_bboxes'
in
ann_info
assert
ann_info
[
'gt_bboxes'
].
dtype
==
np
.
float64
assert
'gt_bboxes_3d'
in
ann_info
assert
'gt_bboxes_3d'
in
ann_info
assert
isinstance
(
ann_info
[
'gt_bboxes_3d'
],
LiDARInstance3DBoxes
)
assert
isinstance
(
ann_info
[
'gt_bboxes_3d'
],
LiDARInstance3DBoxes
)
assert
torch
.
allclose
(
ann_info
[
'gt_bboxes_3d'
].
tensor
.
sum
(),
assert
torch
.
allclose
(
ann_info
[
'gt_bboxes_3d'
].
tensor
.
sum
(),
...
@@ -89,16 +85,6 @@ def test_getitem():
...
@@ -89,16 +85,6 @@ def test_getitem():
assert
ann_info
[
'centers_2d'
].
dtype
==
np
.
float64
assert
ann_info
[
'centers_2d'
].
dtype
==
np
.
float64
assert
'depths'
in
ann_info
assert
'depths'
in
ann_info
assert
ann_info
[
'depths'
].
dtype
==
np
.
float64
assert
ann_info
[
'depths'
].
dtype
==
np
.
float64
assert
'group_id'
in
ann_info
assert
ann_info
[
'group_id'
].
dtype
==
np
.
int64
assert
'occluded'
in
ann_info
assert
ann_info
[
'occluded'
].
dtype
==
np
.
int64
assert
'difficulty'
in
ann_info
assert
ann_info
[
'difficulty'
].
dtype
==
np
.
int64
assert
'num_lidar_pts'
in
ann_info
assert
ann_info
[
'num_lidar_pts'
].
dtype
==
np
.
int64
assert
'truncated'
in
ann_info
assert
ann_info
[
'truncated'
].
dtype
==
np
.
int64
car_kitti_dataset
=
KittiDataset
(
car_kitti_dataset
=
KittiDataset
(
data_root
,
data_root
,
...
@@ -115,8 +101,8 @@ def test_getitem():
...
@@ -115,8 +101,8 @@ def test_getitem():
ann_info
=
car_kitti_dataset
.
parse_ann_info
(
input_dict
)
ann_info
=
car_kitti_dataset
.
parse_ann_info
(
input_dict
)
# assert the keys in ann_info and the type
# assert the keys in ann_info and the type
assert
'
gt_label
s'
in
ann_info
assert
'
instance
s'
in
ann_info
assert
ann_info
[
'gt_labels'
].
dtype
==
np
.
int64
assert
ann_info
[
'gt_labels
_3d
'
].
dtype
==
np
.
int64
# all instance have been filtered by classes
# all instance have been filtered by classes
assert
len
(
ann_info
[
'gt_labels'
])
==
0
assert
len
(
ann_info
[
'gt_labels
_3d
'
])
==
0
assert
len
(
car_kitti_dataset
.
metainfo
[
'CLASSES'
])
==
1
assert
len
(
car_kitti_dataset
.
metainfo
[
'CLASSES'
])
==
1
tests/test_data/test_datasets/test_lyft_dataset.py
View file @
c2fe651f
...
@@ -4,9 +4,8 @@ from mmcv.transforms.base import BaseTransform
...
@@ -4,9 +4,8 @@ from mmcv.transforms.base import BaseTransform
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
mmengine.registry
import
TRANSFORMS
from
mmengine.registry
import
TRANSFORMS
from
mmdet3d.core.bbox
import
LiDARInstance3DBoxes
from
mmdet3d.core.data_structures
import
Det3DDataSample
from
mmdet3d.datasets
import
LyftDataset
from
mmdet3d.datasets
import
LyftDataset
from
mmdet3d.structures
import
Det3DDataSample
,
LiDARInstance3DBoxes
def
_generate_nus_dataset_config
():
def
_generate_nus_dataset_config
():
...
...
tests/test_data/test_datasets/test_nuscenes_dataset.py
View file @
c2fe651f
...
@@ -4,9 +4,8 @@ from mmcv.transforms.base import BaseTransform
...
@@ -4,9 +4,8 @@ from mmcv.transforms.base import BaseTransform
from
mmengine.data
import
InstanceData
from
mmengine.data
import
InstanceData
from
mmengine.registry
import
TRANSFORMS
from
mmengine.registry
import
TRANSFORMS
from
mmdet3d.core.bbox
import
LiDARInstance3DBoxes
from
mmdet3d.core.data_structures
import
Det3DDataSample
from
mmdet3d.datasets
import
NuScenesDataset
from
mmdet3d.datasets
import
NuScenesDataset
from
mmdet3d.structures
import
Det3DDataSample
,
LiDARInstance3DBoxes
def
_generate_nus_dataset_config
():
def
_generate_nus_dataset_config
():
...
...
Prev
1
…
7
8
9
10
11
12
13
14
Next
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