Commit c2fe651f authored by zhangshilong's avatar zhangshilong Committed by ChaimZhu
Browse files

refactor directory

parent bc5806ba
This diff is collapsed.
...@@ -4,11 +4,11 @@ from typing import Callable, List, Optional, Union ...@@ -4,11 +4,11 @@ from typing import Callable, List, Optional, Union
import numpy as np import numpy as np
from mmdet3d.core.bbox import DepthInstance3DBoxes
from mmdet3d.registry import DATASETS from mmdet3d.registry import DATASETS
from mmdet3d.structures import DepthInstance3DBoxes
from .det3d_dataset import Det3DDataset from .det3d_dataset import Det3DDataset
from .pipelines import Compose
from .seg3d_dataset import Seg3DDataset from .seg3d_dataset import Seg3DDataset
from .transforms import Compose
@DATASETS.register_module() @DATASETS.register_module()
...@@ -118,7 +118,7 @@ class S3DISDataset(Det3DDataset): ...@@ -118,7 +118,7 @@ class S3DISDataset(Det3DDataset):
Returns: Returns:
dict: Data information that will be passed to the data dict: Data information that will be passed to the data
preprocessing pipelines. It includes the following keys: preprocessing transforms. It includes the following keys:
- pts_filename (str): Filename of point clouds. - pts_filename (str): Filename of point clouds.
- file_name (str): Filename of point clouds. - file_name (str): Filename of point clouds.
......
...@@ -5,8 +5,8 @@ from typing import Callable, List, Optional, Union ...@@ -5,8 +5,8 @@ from typing import Callable, List, Optional, Union
import numpy as np import numpy as np
from mmdet3d.core.bbox import DepthInstance3DBoxes
from mmdet3d.registry import DATASETS from mmdet3d.registry import DATASETS
from mmdet3d.structures import DepthInstance3DBoxes
from .det3d_dataset import Det3DDataset from .det3d_dataset import Det3DDataset
from .seg3d_dataset import Seg3DDataset from .seg3d_dataset import Seg3DDataset
...@@ -111,7 +111,7 @@ class ScanNetDataset(Det3DDataset): ...@@ -111,7 +111,7 @@ class ScanNetDataset(Det3DDataset):
Returns: Returns:
dict: Data information that will be passed to the data dict: Data information that will be passed to the data
preprocessing pipelines. It includes the following keys: preprocessing transforms. It includes the following keys:
""" """
info['axis_align_matrix'] = self._get_axis_align_matrix(info) info['axis_align_matrix'] = self._get_axis_align_matrix(info)
info['pts_instance_mask_path'] = osp.join( info['pts_instance_mask_path'] = osp.join(
......
...@@ -242,7 +242,7 @@ class Seg3DDataset(BaseDataset): ...@@ -242,7 +242,7 @@ class Seg3DDataset(BaseDataset):
# use it in PointSegClassMapping pipeline # use it in PointSegClassMapping pipeline
info['label_mapping'] = self.label_mapping info['label_mapping'] = self.label_mapping
# 'eval_ann_info' will be updated in loading pipelines # 'eval_ann_info' will be updated in loading transforms
if self.test_mode and self.load_eval_anns: if self.test_mode and self.load_eval_anns:
info['eval_ann_info'] = dict() info['eval_ann_info'] = dict()
......
...@@ -5,8 +5,8 @@ from typing import Callable, List, Optional, Union ...@@ -5,8 +5,8 @@ from typing import Callable, List, Optional, Union
import numpy as np import numpy as np
from mmdet3d.core.bbox import DepthInstance3DBoxes
from mmdet3d.registry import DATASETS from mmdet3d.registry import DATASETS
from mmdet3d.structures import DepthInstance3DBoxes
from .det3d_dataset import Det3DDataset from .det3d_dataset import Det3DDataset
......
...@@ -5,7 +5,7 @@ import numba ...@@ -5,7 +5,7 @@ import numba
import numpy as np import numpy as np
from numba.core.errors import NumbaPerformanceWarning from numba.core.errors import NumbaPerformanceWarning
from mmdet3d.core.bbox import box_np_ops from mmdet3d.structures.ops import box_np_ops
warnings.filterwarnings('ignore', category=NumbaPerformanceWarning) warnings.filterwarnings('ignore', category=NumbaPerformanceWarning)
......
...@@ -6,9 +6,9 @@ import warnings ...@@ -6,9 +6,9 @@ import warnings
import mmcv import mmcv
import numpy as np import numpy as np
from mmdet3d.core.bbox import box_np_ops from mmdet3d.datasets.transforms import data_augment_utils
from mmdet3d.datasets.pipelines import data_augment_utils
from mmdet3d.registry import TRANSFORMS from mmdet3d.registry import TRANSFORMS
from mmdet3d.structures.ops import box_np_ops
class BatchSampler: class BatchSampler:
......
...@@ -8,10 +8,9 @@ from mmcv import BaseTransform ...@@ -8,10 +8,9 @@ from mmcv import BaseTransform
from mmengine import InstanceData from mmengine import InstanceData
from numpy import dtype from numpy import dtype
from mmdet3d.core import Det3DDataSample, PointData
from mmdet3d.core.bbox import BaseInstance3DBoxes
from mmdet3d.core.points import BasePoints
from mmdet3d.registry import TRANSFORMS from mmdet3d.registry import TRANSFORMS
from mmdet3d.structures import BaseInstance3DBoxes, Det3DDataSample, PointData
from mmdet3d.structures.points import BasePoints
def to_tensor( def to_tensor(
......
...@@ -6,9 +6,9 @@ import numpy as np ...@@ -6,9 +6,9 @@ import numpy as np
from mmcv.transforms import LoadImageFromFile from mmcv.transforms import LoadImageFromFile
from mmcv.transforms.base import BaseTransform from mmcv.transforms.base import BaseTransform
from mmdet3d.core.points import BasePoints, get_points_type
from mmdet3d.registry import TRANSFORMS from mmdet3d.registry import TRANSFORMS
from mmdet.datasets.pipelines import LoadAnnotations from mmdet3d.structures.points import BasePoints, get_points_type
from mmdet.datasets.transforms import LoadAnnotations
@TRANSFORMS.register_module() @TRANSFORMS.register_module()
...@@ -760,12 +760,6 @@ class LoadAnnotations3D(LoadAnnotations): ...@@ -760,12 +760,6 @@ class LoadAnnotations3D(LoadAnnotations):
else: else:
results['gt_bboxes'] = np.array( results['gt_bboxes'] = np.array(
gt_bboxes, dtype=np.float32).reshape((-1, 4)) gt_bboxes, dtype=np.float32).reshape((-1, 4))
if self.denorm_bbox:
bbox_num = results['gt_bboxes'].shape[0]
if bbox_num != 0:
h, w = results['img_shape']
results['gt_bboxes'][:, 0::2] *= w
results['gt_bboxes'][:, 1::2] *= h
if 'eval_ann_info' in results: if 'eval_ann_info' in results:
results['eval_ann_info']['gt_bboxes'] = results['gt_bboxes'] results['eval_ann_info']['gt_bboxes'] = results['gt_bboxes']
......
...@@ -8,12 +8,13 @@ import numpy as np ...@@ -8,12 +8,13 @@ import numpy as np
from mmcv import is_tuple_of from mmcv import is_tuple_of
from mmcv.transforms import BaseTransform from mmcv.transforms import BaseTransform
from mmdet3d.core import VoxelGenerator from mmdet3d.models.task_modules import VoxelGenerator
from mmdet3d.core.bbox import (CameraInstance3DBoxes, DepthInstance3DBoxes,
LiDARInstance3DBoxes, box_np_ops)
from mmdet3d.core.points import BasePoints
from mmdet3d.registry import TRANSFORMS from mmdet3d.registry import TRANSFORMS
from mmdet.datasets.pipelines import RandomFlip from mmdet3d.structures import (CameraInstance3DBoxes, DepthInstance3DBoxes,
LiDARInstance3DBoxes)
from mmdet3d.structures.ops import box_np_ops
from mmdet3d.structures.points import BasePoints
from mmdet.datasets.transforms import RandomFlip
from .data_augment_utils import noise_per_object_v3_ from .data_augment_utils import noise_per_object_v3_
......
...@@ -5,16 +5,15 @@ from mmcv.transforms import LoadImageFromFile ...@@ -5,16 +5,15 @@ from mmcv.transforms import LoadImageFromFile
from pyquaternion import Quaternion from pyquaternion import Quaternion
# yapf: disable # yapf: disable
from mmdet3d.datasets.pipelines import (LoadAnnotations3D, from mmdet3d.datasets.transforms import (LoadAnnotations3D,
LoadImageFromFileMono3D, LoadImageFromFileMono3D,
LoadMultiViewImageFromFiles, LoadMultiViewImageFromFiles,
LoadPointsFromFile, LoadPointsFromFile,
LoadPointsFromMultiSweeps, LoadPointsFromMultiSweeps,
MultiScaleFlipAug3D, Pack3DDetInputs, MultiScaleFlipAug3D, Pack3DDetInputs,
PointSegClassMapping) PointSegClassMapping)
# yapf: enable # yapf: enable
from mmdet3d.registry import TRANSFORMS from mmdet3d.registry import TRANSFORMS
from mmdet.datasets.pipelines import MultiScaleFlipAug
def is_loading_function(transform): def is_loading_function(transform):
...@@ -41,12 +40,12 @@ def is_loading_function(transform): ...@@ -41,12 +40,12 @@ def is_loading_function(transform):
return False return False
if obj_cls in loading_functions: if obj_cls in loading_functions:
return True return True
if obj_cls in (MultiScaleFlipAug3D, MultiScaleFlipAug): if obj_cls in (MultiScaleFlipAug3D, ):
return None return None
elif callable(transform): elif callable(transform):
if isinstance(transform, loading_functions): if isinstance(transform, loading_functions):
return True return True
if isinstance(transform, (MultiScaleFlipAug3D, MultiScaleFlipAug)): if isinstance(transform, (MultiScaleFlipAug3D)):
return None return None
return False return False
...@@ -63,7 +62,7 @@ def get_loading_pipeline(pipeline): ...@@ -63,7 +62,7 @@ def get_loading_pipeline(pipeline):
keep loading image, points and annotations related configuration. keep loading image, points and annotations related configuration.
Examples: Examples:
>>> pipelines = [ >>> transforms = [
... dict(type='LoadPointsFromFile', ... dict(type='LoadPointsFromFile',
... coord_type='LIDAR', load_dim=4, use_dim=4), ... coord_type='LIDAR', load_dim=4, use_dim=4),
... dict(type='LoadImageFromFile'), ... dict(type='LoadImageFromFile'),
...@@ -94,7 +93,7 @@ def get_loading_pipeline(pipeline): ...@@ -94,7 +93,7 @@ def get_loading_pipeline(pipeline):
... keys=['points', 'img', 'gt_bboxes_3d', 'gt_labels_3d']) ... keys=['points', 'img', 'gt_bboxes_3d', 'gt_labels_3d'])
... ] ... ]
>>> assert expected_pipelines == \ >>> assert expected_pipelines == \
... get_loading_pipeline(pipelines) ... get_loading_pipeline(transforms)
""" """
loading_pipeline = [] loading_pipeline = []
for transform in pipeline: for transform in pipeline:
......
...@@ -9,7 +9,7 @@ import torch ...@@ -9,7 +9,7 @@ import torch
from mmcv.utils import print_log from mmcv.utils import print_log
from mmdet3d.registry import DATASETS from mmdet3d.registry import DATASETS
from ..core.bbox import Box3DMode, points_cam2img from mmdet3d.structures import Box3DMode, points_cam2img
from .kitti_dataset import KittiDataset from .kitti_dataset import KittiDataset
...@@ -188,7 +188,7 @@ class WaymoDataset(KittiDataset): ...@@ -188,7 +188,7 @@ class WaymoDataset(KittiDataset):
pklfile_prefix, pklfile_prefix,
submission_prefix) submission_prefix)
if 'waymo' in data_format: if 'waymo' in data_format:
from ..core.evaluation.waymo_utils.prediction_kitti_to_waymo import \ from mmdet3d.evaluation.functional.waymo_utils import \
KITTI2Waymo # noqa KITTI2Waymo # noqa
waymo_root = osp.join( waymo_root = osp.join(
self.data_root.split('kitti_format')[0], 'waymo_format') self.data_root.split('kitti_format')[0], 'waymo_format')
...@@ -257,7 +257,7 @@ class WaymoDataset(KittiDataset): ...@@ -257,7 +257,7 @@ class WaymoDataset(KittiDataset):
pklfile_prefix, pklfile_prefix,
submission_prefix, submission_prefix,
data_format='kitti') data_format='kitti')
from mmdet3d.core.evaluation import kitti_eval from mmdet3d.evaluation import kitti_eval
gt_annos = [info['annos'] for info in self.data_infos] gt_annos = [info['annos'] for info in self.data_infos]
if isinstance(result_files, dict): if isinstance(result_files, dict):
......
# Copyright (c) OpenMMLab. All rights reserved.
from .scheduler import BetasSchedulerMixin, CosineAnnealingBetas
__all__ = ['BetasSchedulerMixin', 'CosineAnnealingBetas']
# Copyright (c) OpenMMLab. All rights reserved.
from mmdet3d.evaluation.functional.kitti_utils import (do_eval, eval_class,
kitti_eval,
kitti_eval_coco_style)
from .functional import (aggregate_predictions, average_precision,
eval_det_cls, eval_map_recall, fast_hist, get_acc,
get_acc_cls, get_classwise_aps, get_single_class_aps,
indoor_eval, instance_seg_eval, load_lyft_gts,
load_lyft_predictions, lyft_eval, per_class_iou,
rename_gt, seg_eval)
from .metrics import (IndoorMetric, InstanceSegMetric, KittiMetric, LyftMetric,
NuScenesMetric, SegMetric)
__all__ = [
'kitti_eval_coco_style', 'kitti_eval', 'indoor_eval', 'lyft_eval',
'seg_eval', 'instance_seg_eval', 'average_precision', 'eval_det_cls',
'eval_map_recall', 'indoor_eval', 'aggregate_predictions', 'rename_gt',
'instance_seg_eval', 'load_lyft_gts', 'load_lyft_predictions', 'lyft_eval',
'get_classwise_aps', 'get_single_class_aps', 'fast_hist', 'per_class_iou',
'get_acc', 'get_acc_cls', 'seg_eval', 'KittiMetric', 'NuScenesMetric',
'IndoorMetric', 'LyftMetric', 'SegMetric', 'InstanceSegMetric',
'eval_class', 'do_eval'
]
# Copyright (c) OpenMMLab. All rights reserved.
from .indoor_eval import (average_precision, eval_det_cls, eval_map_recall,
indoor_eval)
from .instance_seg_eval import (aggregate_predictions, instance_seg_eval,
rename_gt)
from .kitti_utils import do_eval, kitti_eval, kitti_eval_coco_style
from .lyft_eval import (get_classwise_aps, get_single_class_aps, load_lyft_gts,
load_lyft_predictions, lyft_eval)
from .scannet_utils import evaluate_matches, scannet_eval
from .seg_eval import fast_hist, get_acc, get_acc_cls, per_class_iou, seg_eval
__all__ = [
'average_precision', 'eval_det_cls', 'eval_map_recall', 'indoor_eval',
'aggregate_predictions', 'rename_gt', 'instance_seg_eval', 'load_lyft_gts',
'load_lyft_predictions', 'lyft_eval', 'get_classwise_aps',
'get_single_class_aps', 'fast_hist', 'per_class_iou', 'get_acc',
'get_acc_cls', 'seg_eval', 'kitti_eval', 'kitti_eval_coco_style',
'scannet_eval', 'evaluate_matches', 'do_eval'
]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment