From 1f9eb6c8f13ce3fa04a5b7c59a729848886d00c5 Mon Sep 17 00:00:00 2001 From: Xiangxu-0103 Date: Tue, 15 Nov 2022 11:29:46 +0800 Subject: [PATCH] [Enhance] Refactor the import of `mmdet` (#1947) * fix config * refactor import of `mmdet` * fix lint * fix lint --- .../pgd_r101-caffe_fpn_head-gn_16xb2-1x_nus-mono3d.py | 3 ++- .../pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py | 2 +- mmdet3d/__init__.py | 2 +- mmdet3d/datasets/builder.py | 3 ++- mmdet3d/datasets/transforms/loading.py | 2 +- mmdet3d/datasets/transforms/transforms_3d.py | 4 ++-- mmdet3d/evaluation/metrics/indoor_metric.py | 2 +- mmdet3d/models/backbones/__init__.py | 1 + mmdet3d/models/backbones/nostem_regnet.py | 3 ++- mmdet3d/models/data_preprocessors/data_preprocessor.py | 2 +- mmdet3d/models/dense_heads/anchor3d_head.py | 2 +- mmdet3d/models/dense_heads/anchor_free_mono3d_head.py | 2 +- mmdet3d/models/dense_heads/base_3d_dense_head.py | 2 +- mmdet3d/models/dense_heads/centerpoint_head.py | 2 +- mmdet3d/models/dense_heads/fcaf3d_head.py | 2 +- mmdet3d/models/dense_heads/fcos_mono3d_head.py | 2 +- mmdet3d/models/dense_heads/groupfree3d_head.py | 2 +- mmdet3d/models/dense_heads/monoflex_head.py | 10 +++++----- mmdet3d/models/dense_heads/pgd_head.py | 4 ++-- mmdet3d/models/dense_heads/point_rpn_head.py | 2 +- mmdet3d/models/dense_heads/shape_aware_head.py | 2 +- mmdet3d/models/dense_heads/smoke_mono3d_head.py | 10 +++++----- mmdet3d/models/dense_heads/ssd_3d_head.py | 2 +- mmdet3d/models/dense_heads/train_mixins.py | 2 +- mmdet3d/models/dense_heads/vote_head.py | 2 +- mmdet3d/models/detectors/base.py | 2 +- mmdet3d/models/detectors/dfm.py | 2 +- mmdet3d/models/detectors/multiview_dfm.py | 2 +- mmdet3d/models/detectors/single_stage_mono3d.py | 2 +- mmdet3d/models/layers/sparse_block.py | 2 +- mmdet3d/models/losses/__init__.py | 1 + mmdet3d/models/losses/axis_aligned_iou_loss.py | 2 +- mmdet3d/models/losses/multibin_loss.py | 2 +- mmdet3d/models/losses/paconv_regularization_loss.py | 2 +- mmdet3d/models/losses/rotated_iou_loss.py | 2 +- mmdet3d/models/losses/uncertain_smooth_l1_loss.py | 2 +- mmdet3d/models/middle_encoders/sparse_encoder.py | 2 +- mmdet3d/models/necks/__init__.py | 1 + mmdet3d/models/roi_heads/base_3droi_head.py | 3 ++- mmdet3d/models/roi_heads/bbox_heads/__init__.py | 1 + mmdet3d/models/roi_heads/bbox_heads/h3d_bbox_head.py | 2 +- .../models/roi_heads/bbox_heads/parta2_bbox_head.py | 2 +- .../roi_heads/bbox_heads/point_rcnn_bbox_head.py | 2 +- .../roi_heads/mask_heads/pointwise_semantic_head.py | 2 +- mmdet3d/models/roi_heads/mask_heads/primitive_head.py | 2 +- mmdet3d/models/roi_heads/part_aggregation_roi_head.py | 2 +- mmdet3d/models/roi_heads/point_rcnn_roi_head.py | 2 +- mmdet3d/models/roi_heads/roi_extractors/__init__.py | 1 + mmdet3d/models/task_modules/__init__.py | 1 + .../task_modules/assigners/max_3d_iou_assigner.py | 2 +- .../task_modules/coders/centerpoint_bbox_coders.py | 2 +- .../task_modules/coders/delta_xyzwhlr_bbox_coder.py | 2 +- .../models/task_modules/coders/fcos3d_bbox_coder.py | 2 +- .../models/task_modules/coders/monoflex_bbox_coder.py | 2 +- .../coders/partial_bin_based_bbox_coder.py | 2 +- .../task_modules/coders/point_xyzwhlr_bbox_coder.py | 2 +- mmdet3d/models/task_modules/coders/smoke_bbox_coder.py | 2 +- mmdet3d/models/task_modules/samplers/__init__.py | 1 + mmdet3d/models/task_modules/samplers/pseudosample.py | 2 +- mmdet3d/structures/det3d_data_sample.py | 2 +- mmdet3d/structures/ops/iou3d_calculator.py | 2 +- mmdet3d/utils/collect_env.py | 2 +- mmdet3d/utils/typing.py | 2 +- mmdet3d/visualization/local_visualizer.py | 8 ++++---- setup.cfg | 4 ++-- tools/dataset_converters/create_gt_database.py | 2 +- 66 files changed, 84 insertions(+), 73 deletions(-) diff --git a/configs/pgd/pgd_r101-caffe_fpn_head-gn_16xb2-1x_nus-mono3d.py b/configs/pgd/pgd_r101-caffe_fpn_head-gn_16xb2-1x_nus-mono3d.py index 6a95c8531f..f5833eebd1 100644 --- a/configs/pgd/pgd_r101-caffe_fpn_head-gn_16xb2-1x_nus-mono3d.py +++ b/configs/pgd/pgd_r101-caffe_fpn_head-gn_16xb2-1x_nus-mono3d.py @@ -19,7 +19,8 @@ (), # velo (256, ) # bbox2d ), - loss_depth=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0), + loss_depth=dict( + type='mmdet.SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0), bbox_coder=dict( type='PGDBBoxCoder', base_depths=((31.99, 21.12), (37.15, 24.63), (39.69, 23.97), diff --git a/configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py b/configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py index 83926ec0bc..94a38ad1c5 100644 --- a/configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py +++ b/configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py @@ -24,7 +24,7 @@ _delete_=True, assigner=dict( type='Max3DIoUAssigner', - iou_calculator=dict(type='mmdet3d.BboxOverlapsNearest3D'), + iou_calculator=dict(type='BboxOverlapsNearest3D'), pos_iou_thr=0.6, neg_iou_thr=0.45, min_pos_iou=0.45, diff --git a/mmdet3d/__init__.py b/mmdet3d/__init__.py index 82d75ad83a..2e9afc0953 100644 --- a/mmdet3d/__init__.py +++ b/mmdet3d/__init__.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import mmcv +import mmdet import mmengine from mmengine.utils import digit_version -import mmdet from .version import __version__, version_info mmcv_minimum_version = '2.0.0rc0' diff --git a/mmdet3d/datasets/builder.py b/mmdet3d/datasets/builder.py index 088785ce37..63a874850e 100644 --- a/mmdet3d/datasets/builder.py +++ b/mmdet3d/datasets/builder.py @@ -1,9 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import platform -from mmdet3d.registry import DATASETS, TRANSFORMS from mmdet.datasets.builder import _concat_dataset +from mmdet3d.registry import DATASETS, TRANSFORMS + if platform.system() != 'Windows': # https://github.com/pytorch/pytorch/issues/973 import resource diff --git a/mmdet3d/datasets/transforms/loading.py b/mmdet3d/datasets/transforms/loading.py index ac914f4c1b..718ee9eb78 100644 --- a/mmdet3d/datasets/transforms/loading.py +++ b/mmdet3d/datasets/transforms/loading.py @@ -7,10 +7,10 @@ import numpy as np from mmcv.transforms import LoadImageFromFile from mmcv.transforms.base import BaseTransform +from mmdet.datasets.transforms import LoadAnnotations from mmdet3d.registry import TRANSFORMS from mmdet3d.structures.points import BasePoints, get_points_type -from mmdet.datasets.transforms import LoadAnnotations @TRANSFORMS.register_module() diff --git a/mmdet3d/datasets/transforms/transforms_3d.py b/mmdet3d/datasets/transforms/transforms_3d.py index e860db52db..e3fe078dc2 100644 --- a/mmdet3d/datasets/transforms/transforms_3d.py +++ b/mmdet3d/datasets/transforms/transforms_3d.py @@ -7,6 +7,8 @@ import mmcv import numpy as np from mmcv.transforms import BaseTransform, RandomResize, Resize +from mmdet.datasets.transforms import (PhotoMetricDistortion, RandomCrop, + RandomFlip) from mmengine import is_tuple_of from mmdet3d.models.task_modules import VoxelGenerator @@ -15,8 +17,6 @@ LiDARInstance3DBoxes) from mmdet3d.structures.ops import box_np_ops from mmdet3d.structures.points import BasePoints -from mmdet.datasets.transforms import (PhotoMetricDistortion, RandomCrop, - RandomFlip) from .compose import Compose from .data_augment_utils import noise_per_object_v3_ diff --git a/mmdet3d/evaluation/metrics/indoor_metric.py b/mmdet3d/evaluation/metrics/indoor_metric.py index 991b257f60..27acab6bc6 100644 --- a/mmdet3d/evaluation/metrics/indoor_metric.py +++ b/mmdet3d/evaluation/metrics/indoor_metric.py @@ -3,13 +3,13 @@ from typing import Dict, List, Optional, Sequence import numpy as np +from mmdet.evaluation import eval_map from mmengine.evaluator import BaseMetric from mmengine.logging import MMLogger from mmdet3d.evaluation import indoor_eval from mmdet3d.registry import METRICS from mmdet3d.structures import get_box_type -from mmdet.evaluation import eval_map @METRICS.register_module() diff --git a/mmdet3d/models/backbones/__init__.py b/mmdet3d/models/backbones/__init__.py index d51c16d2f6..009a06947a 100644 --- a/mmdet3d/models/backbones/__init__.py +++ b/mmdet3d/models/backbones/__init__.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmdet.models.backbones import SSDVGG, HRNet, ResNet, ResNetV1d, ResNeXt + from .dgcnn import DGCNNBackbone from .dla import DLANet from .mink_resnet import MinkResNet diff --git a/mmdet3d/models/backbones/nostem_regnet.py b/mmdet3d/models/backbones/nostem_regnet.py index ac07f9ef7e..24a572cde0 100644 --- a/mmdet3d/models/backbones/nostem_regnet.py +++ b/mmdet3d/models/backbones/nostem_regnet.py @@ -1,7 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. -from mmdet3d.registry import MODELS from mmdet.models.backbones import RegNet +from mmdet3d.registry import MODELS + @MODELS.register_module() class NoStemRegNet(RegNet): diff --git a/mmdet3d/models/data_preprocessors/data_preprocessor.py b/mmdet3d/models/data_preprocessors/data_preprocessor.py index 28d116e317..5eb8f2545e 100644 --- a/mmdet3d/models/data_preprocessors/data_preprocessor.py +++ b/mmdet3d/models/data_preprocessors/data_preprocessor.py @@ -6,13 +6,13 @@ import numpy as np import torch from mmcv.ops import Voxelization +from mmdet.models import DetDataPreprocessor from mmengine.model import stack_batch from mmengine.utils import is_list_of from torch.nn import functional as F from mmdet3d.registry import MODELS from mmdet3d.utils import OptConfigType -from mmdet.models import DetDataPreprocessor from .utils import multiview_img_stack_batch diff --git a/mmdet3d/models/dense_heads/anchor3d_head.py b/mmdet3d/models/dense_heads/anchor3d_head.py index b37adfcc29..d6669de384 100644 --- a/mmdet3d/models/dense_heads/anchor3d_head.py +++ b/mmdet3d/models/dense_heads/anchor3d_head.py @@ -4,6 +4,7 @@ import numpy as np import torch +from mmdet.models.utils import multi_apply from torch import Tensor from torch import nn as nn @@ -12,7 +13,6 @@ from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.utils.typing import (ConfigType, InstanceList, OptConfigType, OptInstanceList) -from mmdet.models.utils import multi_apply from .base_3d_dense_head import Base3DDenseHead from .train_mixins import AnchorTrainMixin diff --git a/mmdet3d/models/dense_heads/anchor_free_mono3d_head.py b/mmdet3d/models/dense_heads/anchor_free_mono3d_head.py index 5438e188be..d4c2585ad3 100644 --- a/mmdet3d/models/dense_heads/anchor_free_mono3d_head.py +++ b/mmdet3d/models/dense_heads/anchor_free_mono3d_head.py @@ -4,13 +4,13 @@ import torch from mmcv.cnn import ConvModule +from mmdet.models.utils import multi_apply from mmengine.model import bias_init_with_prob, normal_init from torch import Tensor from torch import nn as nn from mmdet3d.registry import MODELS from mmdet3d.utils import ConfigType, InstanceList, OptConfigType -from mmdet.models.utils import multi_apply from .base_mono3d_dense_head import BaseMono3DDenseHead diff --git a/mmdet3d/models/dense_heads/base_3d_dense_head.py b/mmdet3d/models/dense_heads/base_3d_dense_head.py index 2d988bdadc..2dc9f515f1 100644 --- a/mmdet3d/models/dense_heads/base_3d_dense_head.py +++ b/mmdet3d/models/dense_heads/base_3d_dense_head.py @@ -4,6 +4,7 @@ import numpy as np import torch +from mmdet.models.utils import select_single_mlvl from mmengine.config import ConfigDict from mmengine.model import BaseModule, constant_init from mmengine.structures import InstanceData @@ -13,7 +14,6 @@ from mmdet3d.structures import limit_period, xywhr2xyxyr from mmdet3d.structures.det3d_data_sample import SampleList from mmdet3d.utils.typing import InstanceList, OptMultiConfig -from mmdet.models.utils import select_single_mlvl class Base3DDenseHead(BaseModule, metaclass=ABCMeta): diff --git a/mmdet3d/models/dense_heads/centerpoint_head.py b/mmdet3d/models/dense_heads/centerpoint_head.py index fb98e67bb2..eb941c76a3 100644 --- a/mmdet3d/models/dense_heads/centerpoint_head.py +++ b/mmdet3d/models/dense_heads/centerpoint_head.py @@ -4,6 +4,7 @@ import torch from mmcv.cnn import ConvModule, build_conv_layer +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from mmengine.structures import InstanceData from torch import Tensor, nn @@ -12,7 +13,6 @@ gaussian_radius) from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.structures import Det3DDataSample, xywhr2xyxyr -from mmdet.models.utils import multi_apply from .. import builder from ..layers import circle_nms, nms_bev diff --git a/mmdet3d/models/dense_heads/fcaf3d_head.py b/mmdet3d/models/dense_heads/fcaf3d_head.py index ce76f15ee1..f43cf698a1 100644 --- a/mmdet3d/models/dense_heads/fcaf3d_head.py +++ b/mmdet3d/models/dense_heads/fcaf3d_head.py @@ -13,6 +13,7 @@ import torch from mmcv.cnn import Scale from mmcv.ops import nms3d, nms3d_normal +from mmdet.utils import reduce_mean from mmengine.model import bias_init_with_prob from mmengine.structures import InstanceData from torch import Tensor, nn @@ -20,7 +21,6 @@ from mmdet3d.models import HEADS, build_loss from mmdet3d.structures import BaseInstance3DBoxes, rotation_3d_in_axis from mmdet3d.utils import InstanceList, OptInstanceList -from mmdet.utils import reduce_mean from .base_3d_dense_head import Base3DDenseHead diff --git a/mmdet3d/models/dense_heads/fcos_mono3d_head.py b/mmdet3d/models/dense_heads/fcos_mono3d_head.py index 5945c65a59..1816431566 100644 --- a/mmdet3d/models/dense_heads/fcos_mono3d_head.py +++ b/mmdet3d/models/dense_heads/fcos_mono3d_head.py @@ -4,6 +4,7 @@ import numpy as np import torch from mmcv.cnn import Scale +from mmdet.models.utils import multi_apply, select_single_mlvl from mmengine.model import normal_init from mmengine.structures import InstanceData from torch import Tensor @@ -14,7 +15,6 @@ from mmdet3d.structures import limit_period, points_img2cam, xywhr2xyxyr from mmdet3d.utils import (ConfigType, InstanceList, OptConfigType, OptInstanceList) -from mmdet.models.utils import multi_apply, select_single_mlvl from .anchor_free_mono3d_head import AnchorFreeMono3DHead RangeType = Sequence[Tuple[int, int]] diff --git a/mmdet3d/models/dense_heads/groupfree3d_head.py b/mmdet3d/models/dense_heads/groupfree3d_head.py index bc21ccbb11..2c5de941fb 100644 --- a/mmdet3d/models/dense_heads/groupfree3d_head.py +++ b/mmdet3d/models/dense_heads/groupfree3d_head.py @@ -9,6 +9,7 @@ build_transformer_layer) from mmcv.ops import PointsSampler as Points_Sampler from mmcv.ops import gather_points +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule, xavier_init from mmengine.structures import InstanceData from torch import Tensor @@ -19,7 +20,6 @@ from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.structures import BaseInstance3DBoxes, Det3DDataSample from mmdet3d.structures.det3d_data_sample import SampleList -from mmdet.models.utils import multi_apply from .base_conv_bbox_head import BaseConvBboxHead EPS = 1e-6 diff --git a/mmdet3d/models/dense_heads/monoflex_head.py b/mmdet3d/models/dense_heads/monoflex_head.py index 28b66757dd..72f0257161 100644 --- a/mmdet3d/models/dense_heads/monoflex_head.py +++ b/mmdet3d/models/dense_heads/monoflex_head.py @@ -2,6 +2,11 @@ from typing import List, Optional, Tuple, Union import torch +from mmdet.models.utils import (gaussian_radius, gen_gaussian_target, + multi_apply) +from mmdet.models.utils.gaussian_target import (get_local_maximum, + get_topk_from_heatmap, + transpose_and_gather_feat) from mmengine.config import ConfigDict from mmengine.model import xavier_init from mmengine.structures import InstanceData @@ -15,11 +20,6 @@ handle_proj_objs) from mmdet3d.registry import MODELS from mmdet3d.structures import Det3DDataSample -from mmdet.models.utils import (gaussian_radius, gen_gaussian_target, - multi_apply) -from mmdet.models.utils.gaussian_target import (get_local_maximum, - get_topk_from_heatmap, - transpose_and_gather_feat) from .anchor_free_mono3d_head import AnchorFreeMono3DHead diff --git a/mmdet3d/models/dense_heads/pgd_head.py b/mmdet3d/models/dense_heads/pgd_head.py index 6240be6c3e..2900921146 100644 --- a/mmdet3d/models/dense_heads/pgd_head.py +++ b/mmdet3d/models/dense_heads/pgd_head.py @@ -4,6 +4,8 @@ import numpy as np import torch from mmcv.cnn import Scale +from mmdet.models.utils import multi_apply +from mmdet.structures.bbox import distance2bbox from mmengine.model import bias_init_with_prob, normal_init from mmengine.structures import InstanceData from torch import Tensor @@ -15,8 +17,6 @@ from mmdet3d.structures import points_cam2img, points_img2cam, xywhr2xyxyr from mmdet3d.utils.typing import (ConfigType, InstanceList, OptConfigType, OptInstanceList) -from mmdet.models.utils import multi_apply -from mmdet.structures.bbox import distance2bbox from .fcos_mono3d_head import FCOSMono3DHead diff --git a/mmdet3d/models/dense_heads/point_rpn_head.py b/mmdet3d/models/dense_heads/point_rpn_head.py index c65c7fff5a..fb532979c6 100644 --- a/mmdet3d/models/dense_heads/point_rpn_head.py +++ b/mmdet3d/models/dense_heads/point_rpn_head.py @@ -2,6 +2,7 @@ from typing import Dict, List, Optional, Tuple import torch +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from mmengine.structures import InstanceData from torch import Tensor @@ -15,7 +16,6 @@ LiDARInstance3DBoxes) from mmdet3d.structures.det3d_data_sample import SampleList from mmdet3d.utils.typing import InstanceList -from mmdet.models.utils import multi_apply @MODELS.register_module() diff --git a/mmdet3d/models/dense_heads/shape_aware_head.py b/mmdet3d/models/dense_heads/shape_aware_head.py index 8c9ac5c814..81c7727ab1 100644 --- a/mmdet3d/models/dense_heads/shape_aware_head.py +++ b/mmdet3d/models/dense_heads/shape_aware_head.py @@ -5,6 +5,7 @@ import numpy as np import torch from mmcv.cnn import ConvModule +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from mmengine.structures import InstanceData from torch import Tensor @@ -14,7 +15,6 @@ from mmdet3d.registry import MODELS from mmdet3d.structures import limit_period, xywhr2xyxyr from mmdet3d.utils import InstanceList, OptInstanceList -from mmdet.models.utils import multi_apply from ..builder import build_head from .anchor3d_head import Anchor3DHead diff --git a/mmdet3d/models/dense_heads/smoke_mono3d_head.py b/mmdet3d/models/dense_heads/smoke_mono3d_head.py index 3322634564..23f3ad2d27 100644 --- a/mmdet3d/models/dense_heads/smoke_mono3d_head.py +++ b/mmdet3d/models/dense_heads/smoke_mono3d_head.py @@ -2,6 +2,11 @@ from typing import List, Optional, Tuple import torch +from mmdet.models.utils import (gaussian_radius, gen_gaussian_target, + multi_apply) +from mmdet.models.utils.gaussian_target import (get_local_maximum, + get_topk_from_heatmap, + transpose_and_gather_feat) from mmengine.structures import InstanceData from torch import Tensor from torch.nn import functional as F @@ -9,11 +14,6 @@ from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.utils import (ConfigType, InstanceList, OptConfigType, OptInstanceList, OptMultiConfig) -from mmdet.models.utils import (gaussian_radius, gen_gaussian_target, - multi_apply) -from mmdet.models.utils.gaussian_target import (get_local_maximum, - get_topk_from_heatmap, - transpose_and_gather_feat) from .anchor_free_mono3d_head import AnchorFreeMono3DHead diff --git a/mmdet3d/models/dense_heads/ssd_3d_head.py b/mmdet3d/models/dense_heads/ssd_3d_head.py index 8069c9bccf..b8f42f8c3f 100644 --- a/mmdet3d/models/dense_heads/ssd_3d_head.py +++ b/mmdet3d/models/dense_heads/ssd_3d_head.py @@ -3,6 +3,7 @@ import torch from mmcv.ops.nms import batched_nms +from mmdet.models.utils import multi_apply from mmengine import ConfigDict from mmengine.structures import InstanceData from torch import Tensor @@ -13,7 +14,6 @@ from mmdet3d.structures.bbox_3d import (DepthInstance3DBoxes, LiDARInstance3DBoxes, rotation_3d_in_axis) -from mmdet.models.utils import multi_apply from .vote_head import VoteHead diff --git a/mmdet3d/models/dense_heads/train_mixins.py b/mmdet3d/models/dense_heads/train_mixins.py index 2d6640d69e..01c7eb79e5 100644 --- a/mmdet3d/models/dense_heads/train_mixins.py +++ b/mmdet3d/models/dense_heads/train_mixins.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.utils import images_to_levels, multi_apply from mmengine.structures import InstanceData from mmdet3d.structures import limit_period -from mmdet.models.utils import images_to_levels, multi_apply class AnchorTrainMixin(object): diff --git a/mmdet3d/models/dense_heads/vote_head.py b/mmdet3d/models/dense_heads/vote_head.py index 408b150e86..4ecceab68f 100644 --- a/mmdet3d/models/dense_heads/vote_head.py +++ b/mmdet3d/models/dense_heads/vote_head.py @@ -4,6 +4,7 @@ import numpy as np import torch from mmcv.ops import furthest_point_sample +from mmdet.models.utils import multi_apply from mmengine import ConfigDict from mmengine.model import BaseModule from mmengine.structures import InstanceData @@ -14,7 +15,6 @@ from mmdet3d.models.losses import chamfer_distance from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.structures import Det3DDataSample -from mmdet.models.utils import multi_apply from .base_conv_bbox_head import BaseConvBboxHead diff --git a/mmdet3d/models/detectors/base.py b/mmdet3d/models/detectors/base.py index ec0d360359..2919458c1c 100644 --- a/mmdet3d/models/detectors/base.py +++ b/mmdet3d/models/detectors/base.py @@ -1,13 +1,13 @@ # Copyright (c) OpenMMLab. All rights reserved. from typing import List, Union +from mmdet.models import BaseDetector from mmengine.structures import InstanceData from mmdet3d.registry import MODELS from mmdet3d.structures.det3d_data_sample import (ForwardResults, OptSampleList, SampleList) from mmdet3d.utils.typing import OptConfigType, OptInstanceList, OptMultiConfig -from mmdet.models import BaseDetector @MODELS.register_module() diff --git a/mmdet3d/models/detectors/dfm.py b/mmdet3d/models/detectors/dfm.py index 4840f0cf29..79aa28311e 100644 --- a/mmdet3d/models/detectors/dfm.py +++ b/mmdet3d/models/detectors/dfm.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.detectors import BaseDetector from mmdet3d.registry import MODELS from mmdet3d.structures.ops import bbox3d2result from mmdet3d.utils import ConfigType -from mmdet.models.detectors import BaseDetector from ..builder import build_backbone, build_head, build_neck diff --git a/mmdet3d/models/detectors/multiview_dfm.py b/mmdet3d/models/detectors/multiview_dfm.py index 543249af4f..fce4c92014 100644 --- a/mmdet3d/models/detectors/multiview_dfm.py +++ b/mmdet3d/models/detectors/multiview_dfm.py @@ -1,6 +1,7 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.detectors import BaseDetector from mmdet3d.models.layers.fusion_layers.point_fusion import (point_sample, voxel_sample) @@ -8,7 +9,6 @@ from mmdet3d.structures.bbox_3d.utils import get_lidar2img from mmdet3d.structures.det3d_data_sample import SampleList from mmdet3d.utils import ConfigType, OptConfigType -from mmdet.models.detectors import BaseDetector from .dfm import DfM from .imvoxelnet import ImVoxelNet diff --git a/mmdet3d/models/detectors/single_stage_mono3d.py b/mmdet3d/models/detectors/single_stage_mono3d.py index 475e80a664..5865db3602 100644 --- a/mmdet3d/models/detectors/single_stage_mono3d.py +++ b/mmdet3d/models/detectors/single_stage_mono3d.py @@ -1,13 +1,13 @@ # Copyright (c) OpenMMLab. All rights reserved. from typing import Tuple +from mmdet.models.detectors.single_stage import SingleStageDetector from mmengine.structures import InstanceData from torch import Tensor from mmdet3d.registry import MODELS from mmdet3d.structures.det3d_data_sample import SampleList from mmdet3d.utils import OptInstanceList -from mmdet.models.detectors.single_stage import SingleStageDetector @MODELS.register_module() diff --git a/mmdet3d/models/layers/sparse_block.py b/mmdet3d/models/layers/sparse_block.py index 03b18e2e9b..3c16c5f158 100644 --- a/mmdet3d/models/layers/sparse_block.py +++ b/mmdet3d/models/layers/sparse_block.py @@ -1,8 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmcv.cnn import build_conv_layer, build_norm_layer +from mmdet.models.backbones.resnet import BasicBlock, Bottleneck from torch import nn -from mmdet.models.backbones.resnet import BasicBlock, Bottleneck from .spconv import IS_SPCONV2_AVAILABLE if IS_SPCONV2_AVAILABLE: diff --git a/mmdet3d/models/losses/__init__.py b/mmdet3d/models/losses/__init__.py index 2e71368037..84f9cea6ca 100644 --- a/mmdet3d/models/losses/__init__.py +++ b/mmdet3d/models/losses/__init__.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmdet.models.losses import FocalLoss, SmoothL1Loss, binary_cross_entropy + from .axis_aligned_iou_loss import AxisAlignedIoULoss, axis_aligned_iou_loss from .chamfer_distance import ChamferDistance, chamfer_distance from .multibin_loss import MultiBinLoss diff --git a/mmdet3d/models/losses/axis_aligned_iou_loss.py b/mmdet3d/models/losses/axis_aligned_iou_loss.py index 2f85a9a0a1..738e906fea 100644 --- a/mmdet3d/models/losses/axis_aligned_iou_loss.py +++ b/mmdet3d/models/losses/axis_aligned_iou_loss.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.losses.utils import weighted_loss from torch import nn as nn from mmdet3d.registry import MODELS from mmdet3d.structures import AxisAlignedBboxOverlaps3D -from mmdet.models.losses.utils import weighted_loss @weighted_loss diff --git a/mmdet3d/models/losses/multibin_loss.py b/mmdet3d/models/losses/multibin_loss.py index 38202acc24..9c0586ee0a 100644 --- a/mmdet3d/models/losses/multibin_loss.py +++ b/mmdet3d/models/losses/multibin_loss.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.losses.utils import weighted_loss from torch import nn as nn from torch.nn import functional as F from mmdet3d.registry import MODELS -from mmdet.models.losses.utils import weighted_loss @weighted_loss diff --git a/mmdet3d/models/losses/paconv_regularization_loss.py b/mmdet3d/models/losses/paconv_regularization_loss.py index c2cb18b30d..6b9726fdf7 100644 --- a/mmdet3d/models/losses/paconv_regularization_loss.py +++ b/mmdet3d/models/losses/paconv_regularization_loss.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.losses.utils import weight_reduce_loss from torch import nn as nn from mmdet3d.registry import MODELS -from mmdet.models.losses.utils import weight_reduce_loss from ..layers import PAConv, PAConvCUDA diff --git a/mmdet3d/models/losses/rotated_iou_loss.py b/mmdet3d/models/losses/rotated_iou_loss.py index 0d50197979..cea83a5686 100644 --- a/mmdet3d/models/losses/rotated_iou_loss.py +++ b/mmdet3d/models/losses/rotated_iou_loss.py @@ -3,11 +3,11 @@ import torch from mmcv.ops import diff_iou_rotated_3d +from mmdet.models.losses.utils import weighted_loss from torch import Tensor from torch import nn as nn from mmdet3d.registry import MODELS -from mmdet.models.losses.utils import weighted_loss @weighted_loss diff --git a/mmdet3d/models/losses/uncertain_smooth_l1_loss.py b/mmdet3d/models/losses/uncertain_smooth_l1_loss.py index 57d2032c7b..4544f9aa36 100644 --- a/mmdet3d/models/losses/uncertain_smooth_l1_loss.py +++ b/mmdet3d/models/losses/uncertain_smooth_l1_loss.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.losses.utils import weighted_loss from torch import nn as nn from mmdet3d.registry import MODELS -from mmdet.models.losses.utils import weighted_loss @weighted_loss diff --git a/mmdet3d/models/middle_encoders/sparse_encoder.py b/mmdet3d/models/middle_encoders/sparse_encoder.py index 022984e830..61fc3cb311 100644 --- a/mmdet3d/models/middle_encoders/sparse_encoder.py +++ b/mmdet3d/models/middle_encoders/sparse_encoder.py @@ -3,6 +3,7 @@ import torch from mmcv.ops import points_in_boxes_all, three_interpolate, three_nn +from mmdet.models.losses import sigmoid_focal_loss, smooth_l1_loss from torch import Tensor from torch import nn as nn @@ -10,7 +11,6 @@ from mmdet3d.models.layers.spconv import IS_SPCONV2_AVAILABLE from mmdet3d.registry import MODELS from mmdet3d.structures import BaseInstance3DBoxes -from mmdet.models.losses import sigmoid_focal_loss, smooth_l1_loss if IS_SPCONV2_AVAILABLE: from spconv.pytorch import SparseConvTensor, SparseSequential diff --git a/mmdet3d/models/necks/__init__.py b/mmdet3d/models/necks/__init__.py index 5443d357d7..0fb3a42360 100644 --- a/mmdet3d/models/necks/__init__.py +++ b/mmdet3d/models/necks/__init__.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmdet.models.necks.fpn import FPN + from .dla_neck import DLANeck from .imvoxel_neck import OutdoorImVoxelNeck from .pointnet2_fp_neck import PointNetFPNeck diff --git a/mmdet3d/models/roi_heads/base_3droi_head.py b/mmdet3d/models/roi_heads/base_3droi_head.py index f126611999..9a6fb6bfd8 100644 --- a/mmdet3d/models/roi_heads/base_3droi_head.py +++ b/mmdet3d/models/roi_heads/base_3droi_head.py @@ -1,7 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. -from mmdet3d.registry import MODELS, TASK_UTILS from mmdet.models.roi_heads import BaseRoIHead +from mmdet3d.registry import MODELS, TASK_UTILS + class Base3DRoIHead(BaseRoIHead): """Base class for 3d RoIHeads.""" diff --git a/mmdet3d/models/roi_heads/bbox_heads/__init__.py b/mmdet3d/models/roi_heads/bbox_heads/__init__.py index fd7a6b04ae..0a6ebeeeb3 100644 --- a/mmdet3d/models/roi_heads/bbox_heads/__init__.py +++ b/mmdet3d/models/roi_heads/bbox_heads/__init__.py @@ -3,6 +3,7 @@ DoubleConvFCBBoxHead, Shared2FCBBoxHead, Shared4Conv1FCBBoxHead) + from .h3d_bbox_head import H3DBboxHead from .parta2_bbox_head import PartA2BboxHead from .point_rcnn_bbox_head import PointRCNNBboxHead diff --git a/mmdet3d/models/roi_heads/bbox_heads/h3d_bbox_head.py b/mmdet3d/models/roi_heads/bbox_heads/h3d_bbox_head.py index 906af26935..8168a5ef86 100644 --- a/mmdet3d/models/roi_heads/bbox_heads/h3d_bbox_head.py +++ b/mmdet3d/models/roi_heads/bbox_heads/h3d_bbox_head.py @@ -3,6 +3,7 @@ import torch from mmcv.cnn import ConvModule +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from mmengine.structures import InstanceData from torch import Tensor @@ -15,7 +16,6 @@ from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.structures import (BaseInstance3DBoxes, DepthInstance3DBoxes, Det3DDataSample) -from mmdet.models.utils import multi_apply @MODELS.register_module() diff --git a/mmdet3d/models/roi_heads/bbox_heads/parta2_bbox_head.py b/mmdet3d/models/roi_heads/bbox_heads/parta2_bbox_head.py index 1f1d328fbd..1cd6badfb0 100644 --- a/mmdet3d/models/roi_heads/bbox_heads/parta2_bbox_head.py +++ b/mmdet3d/models/roi_heads/bbox_heads/parta2_bbox_head.py @@ -4,6 +4,7 @@ import numpy as np import torch from mmcv.cnn import ConvModule +from mmdet.models.utils import multi_apply from mmengine.model import normal_init from mmengine.structures import InstanceData from torch import Tensor @@ -11,7 +12,6 @@ from mmdet3d.models import make_sparse_convmodule from mmdet3d.models.layers.spconv import IS_SPCONV2_AVAILABLE from mmdet3d.utils.typing import InstanceList -from mmdet.models.utils import multi_apply if IS_SPCONV2_AVAILABLE: from spconv.pytorch import (SparseConvTensor, SparseMaxPool3d, diff --git a/mmdet3d/models/roi_heads/bbox_heads/point_rcnn_bbox_head.py b/mmdet3d/models/roi_heads/bbox_heads/point_rcnn_bbox_head.py index 1e7c53859d..e282ab41b4 100644 --- a/mmdet3d/models/roi_heads/bbox_heads/point_rcnn_bbox_head.py +++ b/mmdet3d/models/roi_heads/bbox_heads/point_rcnn_bbox_head.py @@ -6,6 +6,7 @@ import torch.nn as nn from mmcv.cnn import ConvModule from mmcv.cnn.bricks import build_conv_layer +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule, normal_init from mmengine.structures import InstanceData from torch import Tensor @@ -16,7 +17,6 @@ from mmdet3d.structures.bbox_3d import (LiDARInstance3DBoxes, rotation_3d_in_axis, xywhr2xyxyr) from mmdet3d.utils.typing import InstanceList, SamplingResultList -from mmdet.models.utils import multi_apply @MODELS.register_module() diff --git a/mmdet3d/models/roi_heads/mask_heads/pointwise_semantic_head.py b/mmdet3d/models/roi_heads/mask_heads/pointwise_semantic_head.py index 9f055dd066..340c6bf869 100644 --- a/mmdet3d/models/roi_heads/mask_heads/pointwise_semantic_head.py +++ b/mmdet3d/models/roi_heads/mask_heads/pointwise_semantic_head.py @@ -2,6 +2,7 @@ from typing import Dict, Optional, Tuple import torch +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from torch import Tensor from torch import nn as nn @@ -10,7 +11,6 @@ from mmdet3d.registry import MODELS from mmdet3d.structures.bbox_3d import BaseInstance3DBoxes, rotation_3d_in_axis from mmdet3d.utils import InstanceList -from mmdet.models.utils import multi_apply @MODELS.register_module() diff --git a/mmdet3d/models/roi_heads/mask_heads/primitive_head.py b/mmdet3d/models/roi_heads/mask_heads/primitive_head.py index 22f3892227..f6b5e1b7af 100644 --- a/mmdet3d/models/roi_heads/mask_heads/primitive_head.py +++ b/mmdet3d/models/roi_heads/mask_heads/primitive_head.py @@ -4,6 +4,7 @@ import torch from mmcv.cnn import ConvModule from mmcv.ops import furthest_point_sample +from mmdet.models.utils import multi_apply from mmengine.model import BaseModule from mmengine.structures import InstanceData from torch import nn as nn @@ -13,7 +14,6 @@ from mmdet3d.registry import MODELS from mmdet3d.structures import Det3DDataSample from mmdet3d.structures.bbox_3d import BaseInstance3DBoxes -from mmdet.models.utils import multi_apply @MODELS.register_module() diff --git a/mmdet3d/models/roi_heads/part_aggregation_roi_head.py b/mmdet3d/models/roi_heads/part_aggregation_roi_head.py index d7605d3c5a..82816b3442 100644 --- a/mmdet3d/models/roi_heads/part_aggregation_roi_head.py +++ b/mmdet3d/models/roi_heads/part_aggregation_roi_head.py @@ -1,6 +1,7 @@ # Copyright (c) OpenMMLab. All rights reserved. from typing import Dict, List, Tuple +from mmdet.models.task_modules import AssignResult, SamplingResult from mmengine import ConfigDict from torch import Tensor from torch.nn import functional as F @@ -8,7 +9,6 @@ from mmdet3d.registry import MODELS from mmdet3d.structures import bbox3d2roi from mmdet3d.utils import InstanceList -from mmdet.models.task_modules import AssignResult, SamplingResult from ...structures.det3d_data_sample import SampleList from .base_3droi_head import Base3DRoIHead diff --git a/mmdet3d/models/roi_heads/point_rcnn_roi_head.py b/mmdet3d/models/roi_heads/point_rcnn_roi_head.py index 4ebdcfa93f..16dab44524 100644 --- a/mmdet3d/models/roi_heads/point_rcnn_roi_head.py +++ b/mmdet3d/models/roi_heads/point_rcnn_roi_head.py @@ -2,13 +2,13 @@ from typing import Dict, Optional import torch +from mmdet.models.task_modules import AssignResult from torch import Tensor from torch.nn import functional as F from mmdet3d.registry import MODELS, TASK_UTILS from mmdet3d.structures import bbox3d2roi from mmdet3d.utils.typing import InstanceList, SampleList -from mmdet.models.task_modules import AssignResult from .base_3droi_head import Base3DRoIHead diff --git a/mmdet3d/models/roi_heads/roi_extractors/__init__.py b/mmdet3d/models/roi_heads/roi_extractors/__init__.py index 70c28812bb..d2b4d03a52 100644 --- a/mmdet3d/models/roi_heads/roi_extractors/__init__.py +++ b/mmdet3d/models/roi_heads/roi_extractors/__init__.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmdet.models.roi_heads.roi_extractors import SingleRoIExtractor + from .single_roiaware_extractor import Single3DRoIAwareExtractor from .single_roipoint_extractor import Single3DRoIPointExtractor diff --git a/mmdet3d/models/task_modules/__init__.py b/mmdet3d/models/task_modules/__init__.py index 3126a38a0c..2a0c818d28 100644 --- a/mmdet3d/models/task_modules/__init__.py +++ b/mmdet3d/models/task_modules/__init__.py @@ -1,5 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. from mmdet.models.task_modules import AssignResult, BaseAssigner + from .anchor import (ANCHOR_GENERATORS, PRIOR_GENERATORS, AlignedAnchor3DRangeGenerator, AlignedAnchor3DRangeGeneratorPerCls, diff --git a/mmdet3d/models/task_modules/assigners/max_3d_iou_assigner.py b/mmdet3d/models/task_modules/assigners/max_3d_iou_assigner.py index a888c5f76f..6664fdf015 100644 --- a/mmdet3d/models/task_modules/assigners/max_3d_iou_assigner.py +++ b/mmdet3d/models/task_modules/assigners/max_3d_iou_assigner.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. from typing import Optional, Union +from mmdet.models.task_modules import AssignResult, MaxIoUAssigner from mmengine.structures import InstanceData from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import AssignResult, MaxIoUAssigner @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/centerpoint_bbox_coders.py b/mmdet3d/models/task_modules/coders/centerpoint_bbox_coders.py index 89a5b4b70a..862401259b 100644 --- a/mmdet3d/models/task_modules/coders/centerpoint_bbox_coders.py +++ b/mmdet3d/models/task_modules/coders/centerpoint_bbox_coders.py @@ -1,8 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/delta_xyzwhlr_bbox_coder.py b/mmdet3d/models/task_modules/coders/delta_xyzwhlr_bbox_coder.py index b910eba3fd..6098dad41d 100644 --- a/mmdet3d/models/task_modules/coders/delta_xyzwhlr_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/delta_xyzwhlr_bbox_coder.py @@ -1,8 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/fcos3d_bbox_coder.py b/mmdet3d/models/task_modules/coders/fcos3d_bbox_coder.py index a2b46d0da2..2790d00a26 100644 --- a/mmdet3d/models/task_modules/coders/fcos3d_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/fcos3d_bbox_coder.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS from mmdet3d.structures.bbox_3d import limit_period -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/monoflex_bbox_coder.py b/mmdet3d/models/task_modules/coders/monoflex_bbox_coder.py index 9d86e54875..9f4259c81a 100644 --- a/mmdet3d/models/task_modules/coders/monoflex_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/monoflex_bbox_coder.py @@ -1,10 +1,10 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.task_modules import BaseBBoxCoder from torch.nn import functional as F from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/partial_bin_based_bbox_coder.py b/mmdet3d/models/task_modules/coders/partial_bin_based_bbox_coder.py index 5e503d0081..db25daa3fd 100644 --- a/mmdet3d/models/task_modules/coders/partial_bin_based_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/partial_bin_based_bbox_coder.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/point_xyzwhlr_bbox_coder.py b/mmdet3d/models/task_modules/coders/point_xyzwhlr_bbox_coder.py index c7f73a79c8..5e401e9f62 100644 --- a/mmdet3d/models/task_modules/coders/point_xyzwhlr_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/point_xyzwhlr_bbox_coder.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/coders/smoke_bbox_coder.py b/mmdet3d/models/task_modules/coders/smoke_bbox_coder.py index 3e6789bbf5..c1a65a7f79 100644 --- a/mmdet3d/models/task_modules/coders/smoke_bbox_coder.py +++ b/mmdet3d/models/task_modules/coders/smoke_bbox_coder.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch +from mmdet.models.task_modules import BaseBBoxCoder from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import BaseBBoxCoder @TASK_UTILS.register_module() diff --git a/mmdet3d/models/task_modules/samplers/__init__.py b/mmdet3d/models/task_modules/samplers/__init__.py index ce03a207f6..0e7be46a36 100644 --- a/mmdet3d/models/task_modules/samplers/__init__.py +++ b/mmdet3d/models/task_modules/samplers/__init__.py @@ -4,6 +4,7 @@ IoUBalancedNegSampler, OHEMSampler, RandomSampler, SamplingResult) + from .iou_neg_piecewise_sampler import IoUNegPiecewiseSampler from .pseudosample import PseudoSampler diff --git a/mmdet3d/models/task_modules/samplers/pseudosample.py b/mmdet3d/models/task_modules/samplers/pseudosample.py index a93814585f..5ae99e7344 100644 --- a/mmdet3d/models/task_modules/samplers/pseudosample.py +++ b/mmdet3d/models/task_modules/samplers/pseudosample.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.models.task_modules import AssignResult from mmengine.structures import InstanceData from mmdet3d.registry import TASK_UTILS -from mmdet.models.task_modules import AssignResult from ..samplers import BaseSampler, SamplingResult diff --git a/mmdet3d/structures/det3d_data_sample.py b/mmdet3d/structures/det3d_data_sample.py index 244518527f..10c49b7756 100644 --- a/mmdet3d/structures/det3d_data_sample.py +++ b/mmdet3d/structures/det3d_data_sample.py @@ -2,9 +2,9 @@ from typing import Dict, List, Optional, Tuple, Union import torch +from mmdet.structures import DetDataSample from mmengine.structures import InstanceData -from mmdet.structures import DetDataSample from .point_data import PointData diff --git a/mmdet3d/structures/ops/iou3d_calculator.py b/mmdet3d/structures/ops/iou3d_calculator.py index f35c09dcce..baec1cbe45 100644 --- a/mmdet3d/structures/ops/iou3d_calculator.py +++ b/mmdet3d/structures/ops/iou3d_calculator.py @@ -1,9 +1,9 @@ # Copyright (c) OpenMMLab. All rights reserved. import torch +from mmdet.structures.bbox import bbox_overlaps from mmdet3d.registry import TASK_UTILS from mmdet3d.structures.bbox_3d import get_box_type -from mmdet.structures.bbox import bbox_overlaps @TASK_UTILS.register_module() diff --git a/mmdet3d/utils/collect_env.py b/mmdet3d/utils/collect_env.py index 2915030bcc..f4de74fab1 100644 --- a/mmdet3d/utils/collect_env.py +++ b/mmdet3d/utils/collect_env.py @@ -1,8 +1,8 @@ # Copyright (c) OpenMMLab. All rights reserved. +import mmdet from mmengine.utils import get_git_hash from mmengine.utils.dl_utils import collect_env as collect_base_env -import mmdet import mmdet3d diff --git a/mmdet3d/utils/typing.py b/mmdet3d/utils/typing.py index 5489fe313a..7ce729ccc9 100644 --- a/mmdet3d/utils/typing.py +++ b/mmdet3d/utils/typing.py @@ -2,11 +2,11 @@ """Collecting some commonly used type hint in MMDetection3D.""" from typing import List, Optional, Union +from mmdet.models.task_modules.samplers import SamplingResult from mmengine.config import ConfigDict from mmengine.structures import InstanceData from mmdet3d.structures.det3d_data_sample import Det3DDataSample -from mmdet.models.task_modules.samplers import SamplingResult # Type hint of config data ConfigType = Union[ConfigDict, dict] diff --git a/mmdet3d/visualization/local_visualizer.py b/mmdet3d/visualization/local_visualizer.py index f6e5d664f4..065683c2dc 100644 --- a/mmdet3d/visualization/local_visualizer.py +++ b/mmdet3d/visualization/local_visualizer.py @@ -8,6 +8,7 @@ from matplotlib.collections import PatchCollection from matplotlib.patches import PathPatch from matplotlib.path import Path +from mmdet.visualization import DetLocalVisualizer from mmengine.dist import master_only from mmengine.structures import InstanceData from mmengine.visualization.utils import check_type, tensor2ndarray @@ -19,7 +20,6 @@ Det3DDataSample, LiDARInstance3DBoxes, PointData, points_cam2img) from mmdet3d.structures.bbox_3d.box_3d_mode import Box3DMode -from mmdet.visualization import DetLocalVisualizer from .vis_utils import (proj_camera_bbox3d_to_img, proj_depth_bbox3d_to_img, proj_lidar_bbox3d_to_img, to_depth_mode) @@ -708,9 +708,9 @@ def add_datasample(self, and masks. Defaults to 0.3. step (int): Global step value to record. Defaults to 0. """ - classes = self.dataset_meta.get('classes', None) - # For object detection datasets, no palette is saved - palette = self.dataset_meta.get('palette', None) + classes = self.dataset_meta.get('CLASSES', None) + # For object detection datasets, no PALETTE is saved + palette = self.dataset_meta.get('PALETTE', None) ignore_index = self.dataset_meta.get('ignore_index', None) gt_data_3d = None diff --git a/setup.cfg b/setup.cfg index fe02423f7e..b93b5a49db 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,8 +7,8 @@ SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true line_length = 79 multi_line_output = 0 extra_standard_library = setuptools -known_first_party = mmdet,mmseg,mmdet3d -known_third_party = cv2,imageio,indoor3d_util,load_scannet_data,lyft_dataset_sdk,m2r,matplotlib,mmcv,nuimages,numba,numpy,nuscenes,pandas,plyfile,pycocotools,pyquaternion,pytest,pytorch_sphinx_theme,recommonmark,requests,scannet_utils,scipy,seaborn,shapely,skimage,sphinx,tensorflow,terminaltables,torch,trimesh,ts,waymo_open_dataset +known_first_party = mmdet3d +known_third_party = cv2,imageio,indoor3d_util,load_scannet_data,lyft_dataset_sdk,m2r,matplotlib,mmcv,mmdet,mmengine,nuimages,numba,numpy,nuscenes,pandas,plyfile,pycocotools,pyquaternion,pytest,pytorch_sphinx_theme,recommonmark,requests,scannet_utils,scipy,seaborn,shapely,skimage,sphinx,tensorflow,terminaltables,torch,trimesh,ts,waymo_open_dataset no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tools/dataset_converters/create_gt_database.py b/tools/dataset_converters/create_gt_database.py index 9b4b69a006..171fc7479e 100644 --- a/tools/dataset_converters/create_gt_database.py +++ b/tools/dataset_converters/create_gt_database.py @@ -6,13 +6,13 @@ import mmengine import numpy as np from mmcv.ops import roi_align +from mmdet.evaluation import bbox_overlaps from mmengine import track_iter_progress from pycocotools import mask as maskUtils from pycocotools.coco import COCO from mmdet3d.datasets import build_dataset from mmdet3d.structures.ops import box_np_ops as box_np_ops -from mmdet.evaluation import bbox_overlaps def _poly2mask(mask_ann, img_h, img_w):