Skip to content

Commit

Permalink
changes according to mmcv open-mmlab#2216
Browse files Browse the repository at this point in the history
  • Loading branch information
chhluo committed Aug 22, 2022
1 parent e9027c5 commit cbeb8a2
Show file tree
Hide file tree
Showing 34 changed files with 94 additions and 813 deletions.
7 changes: 4 additions & 3 deletions .dev_scripts/benchmark_inference_fps.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
import os.path as osp

import mmcv
from mmcv import Config, DictAction
from mmcv.runner import init_dist
from mmengine.config import Config, DictAction
from mmengine.dist import init_dist
from mmengine.fileio import dump
from terminaltables import GithubFlavoredMarkdownTable

from tools.analysis_tools.benchmark import repeat_measure_inference_speed
Expand Down Expand Up @@ -165,6 +166,6 @@ def results2markdown(result_dict):

if args.out:
mmcv.mkdir_or_exist(args.out)
mmcv.dump(result_dict, osp.join(args.out, 'batch_inference_fps.json'))
dump(result_dict, osp.join(args.out, 'batch_inference_fps.json'))

results2markdown(result_dict)
3 changes: 2 additions & 1 deletion .dev_scripts/gather_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import mmcv
import torch
import yaml
from mmengine.fileio import dump


def ordered_yaml_dump(data, stream=None, Dumper=yaml.SafeDumper, **kwds):
Expand Down Expand Up @@ -328,7 +329,7 @@ def main():

models = dict(models=publish_model_infos)
print(f'Totally gathered {len(publish_model_infos)} models')
mmcv.dump(models, osp.join(models_out, 'model_info.json'))
dump(models, osp.join(models_out, 'model_info.json'))

pwc_files = convert_model_info_to_pwc(publish_model_infos)
for name in pwc_files:
Expand Down
8 changes: 4 additions & 4 deletions .dev_scripts/gather_test_benchmark_metric.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import os.path as osp

import mmcv
from mmcv import Config
from mmengine.config import Config
from mmengine.fileio import dump, load


def parse_args():
Expand Down Expand Up @@ -49,7 +50,7 @@ def parse_args():
if len(json_list) > 0:
log_json_path = list(sorted(json_list))[-1]

metric = mmcv.load(log_json_path)
metric = load(log_json_path)
if config in metric.get('config', {}):

new_metrics = dict()
Expand Down Expand Up @@ -87,8 +88,7 @@ def parse_args():

if metrics_out:
mmcv.mkdir_or_exist(metrics_out)
mmcv.dump(result_dict,
osp.join(metrics_out, 'batch_test_metric_info.json'))
dump(result_dict, osp.join(metrics_out, 'batch_test_metric_info.json'))
if not args.not_show:
print('===================================')
for config_name, metrics in result_dict.items():
Expand Down
4 changes: 2 additions & 2 deletions .dev_scripts/gather_train_benchmark_metric.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import mmcv
from gather_models import get_final_results
from mmengine.fileio import dump

try:
import xlrd
Expand Down Expand Up @@ -137,8 +138,7 @@ def parse_args():
# 4 save or print results
if metrics_out:
mmcv.mkdir_or_exist(metrics_out)
mmcv.dump(result_dict,
osp.join(metrics_out, 'model_metric_info.json'))
dump(result_dict, osp.join(metrics_out, 'model_metric_info.json'))
if not args.not_show:
print('===================================')
for config_name, metrics in result_dict.items():
Expand Down
8 changes: 5 additions & 3 deletions .dev_scripts/test_init_backbone.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
from os.path import dirname, exists, join

import pytest
from mmcv import Config, ProgressBar
from mmcv.runner import _load_checkpoint
# TODO
from mmcv import ProgressBar
from mmengine.config import Config
from mmengine.runner import CheckpointLoader

from mmdet.models import build_detector

Expand Down Expand Up @@ -120,7 +122,7 @@ def _check_backbone(config, print_cfg=True):
if init_cfg is None or init_cfg.get('type') != 'Pretrained':
init_flag = False
if init_flag:
checkpoint = _load_checkpoint(init_cfg.checkpoint)
checkpoint = CheckpointLoader.load_checkpoint(init_cfg.checkpoint)
if 'state_dict' in checkpoint:
state_dict = checkpoint['state_dict']
else:
Expand Down
5 changes: 4 additions & 1 deletion mmdet/datasets/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ def _concat_dataset(cfg, default_args=None):

# TODO: Need to refactor later
def build_dataset(cfg, default_args=None):
from .dataset_wrappers import ClassBalancedDataset, MultiImageMixDataset
from mmengine.dataset import ClassBalancedDataset

from .dataset_wrappers import MultiImageMixDataset

if cfg['type'] == 'ClassBalancedDataset':
dataset = ClassBalancedDataset(
build_dataset(cfg['dataset'], default_args), cfg['oversample_thr'])
Expand Down
27 changes: 13 additions & 14 deletions mmdet/datasets/transforms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
from .colorspace import (AutoContrast, Brightness, Color, ColorTransform,
Contrast, Equalize, Invert, Posterize, Sharpness,
Solarize, SolarizeAdd)
from .formatting import (ImageToTensor, PackDetInputs, ToDataContainer,
ToTensor, Transpose)
from .formatting import ImageToTensor, PackDetInputs, ToTensor, Transpose
from .geometric import (GeomTransform, Rotate, ShearX, ShearY, TranslateX,
TranslateY)
from .instaboost import InstaBoost
Expand All @@ -19,16 +18,16 @@
from .wrappers import MultiBranch, RandomOrder

__all__ = [
'PackDetInputs', 'ToTensor', 'ImageToTensor', 'ToDataContainer',
'Transpose', 'LoadImageFromNDArray', 'LoadAnnotations',
'LoadPanopticAnnotations', 'LoadMultiChannelImageFromFiles',
'LoadProposals', 'Resize', 'RandomFlip', 'RandomCrop', 'Normalize',
'SegRescale', 'MinIoURandomCrop', 'Expand', 'PhotoMetricDistortion',
'Albu', 'InstaBoost', 'RandomCenterCropPad', 'AutoAugment', 'CutOut',
'ShearX', 'ShearY', 'Rotate', 'Color', 'Equalize', 'Brightness',
'Contrast', 'TranslateX', 'TranslateY', 'RandomShift', 'Mosaic', 'MixUp',
'RandomAffine', 'YOLOXHSVRandomAug', 'CopyPaste', 'FilterAnnotations',
'Pad', 'GeomTransform', 'ColorTransform', 'RandAugment', 'Sharpness',
'Solarize', 'SolarizeAdd', 'Posterize', 'AutoContrast', 'Invert',
'MultiBranch', 'RandomErasing', 'LoadEmptyAnnotations', 'RandomOrder'
'PackDetInputs', 'ToTensor', 'ImageToTensor', 'Transpose',
'LoadImageFromNDArray', 'LoadAnnotations', 'LoadPanopticAnnotations',
'LoadMultiChannelImageFromFiles', 'LoadProposals', 'Resize', 'RandomFlip',
'RandomCrop', 'Normalize', 'SegRescale', 'MinIoURandomCrop', 'Expand',
'PhotoMetricDistortion', 'Albu', 'InstaBoost', 'RandomCenterCropPad',
'AutoAugment', 'CutOut', 'ShearX', 'ShearY', 'Rotate', 'Color', 'Equalize',
'Brightness', 'Contrast', 'TranslateX', 'TranslateY', 'RandomShift',
'Mosaic', 'MixUp', 'RandomAffine', 'YOLOXHSVRandomAug', 'CopyPaste',
'FilterAnnotations', 'Pad', 'GeomTransform', 'ColorTransform',
'RandAugment', 'Sharpness', 'Solarize', 'SolarizeAdd', 'Posterize',
'AutoContrast', 'Invert', 'MultiBranch', 'RandomErasing',
'LoadEmptyAnnotations', 'RandomOrder'
]
2 changes: 1 addition & 1 deletion mmdet/datasets/transforms/augment_wrappers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from typing import List, Optional, Union

import numpy as np
from mmcv import ConfigDict
from mmcv.transforms import RandomChoice
from mmcv.transforms.utils import cache_randomness
from mmengine.config import ConfigDict

from mmdet.registry import TRANSFORMS

Expand Down
40 changes: 0 additions & 40 deletions mmdet/datasets/transforms/formatting.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Copyright (c) OpenMMLab. All rights reserved.
import numpy as np
from mmcv.parallel import DataContainer as DC
from mmcv.transforms import to_tensor
from mmcv.transforms.base import BaseTransform
from mmengine.data import InstanceData, PixelData
Expand Down Expand Up @@ -223,45 +222,6 @@ def __repr__(self):
f'(keys={self.keys}, order={self.order})'


@TRANSFORMS.register_module()
class ToDataContainer:
"""Convert results to :obj:`mmcv.DataContainer` by given fields.
Args:
fields (Sequence[dict]): Each field is a dict like
``dict(key='xxx', **kwargs)``. The ``key`` in result will
be converted to :obj:`mmcv.DataContainer` with ``**kwargs``.
Default: ``(dict(key='img', stack=True), dict(key='gt_bboxes'),
dict(key='gt_labels'))``.
"""

def __init__(self,
fields=(dict(key='img', stack=True), dict(key='gt_bboxes'),
dict(key='gt_labels'))):
self.fields = fields

def __call__(self, results):
"""Call function to convert data in results to
:obj:`mmcv.DataContainer`.
Args:
results (dict): Result dict contains the data to convert.
Returns:
dict: The result dict contains the data converted to \
:obj:`mmcv.DataContainer`.
"""

for field in self.fields:
field = field.copy()
key = field.pop('key')
results[key] = DC(results[key], **field)
return results

def __repr__(self):
return self.__class__.__name__ + f'(fields={self.fields})'


@TRANSFORMS.register_module()
class WrapFieldsToLists:
"""Wrap fields of the data dictionary into lists for evaluation.
Expand Down
4 changes: 2 additions & 2 deletions mmdet/datasets/wider_face.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os.path as osp
import xml.etree.ElementTree as ET

import mmcv
from mmengine.fileio import list_from_file

from mmdet.registry import DATASETS
from .xml_style import XMLDataset
Expand Down Expand Up @@ -33,7 +33,7 @@ def load_annotations(self, ann_file):
"""

data_infos = []
img_ids = mmcv.list_from_file(ann_file)
img_ids = list_from_file(ann_file)
for img_id in img_ids:
filename = f'{img_id}.jpg'
xml_path = osp.join(self.img_prefix, 'Annotations',
Expand Down
6 changes: 3 additions & 3 deletions mmdet/engine/hooks/set_epoch_info_hook.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Copyright (c) OpenMMLab. All rights reserved.
from mmcv.parallel import is_module_wrapper
from mmcv.runner import Hook
from mmengine.hooks import Hook
from mmengine.model.wrappers import is_model_wrapper

from mmdet.registry import HOOKS

Expand All @@ -12,6 +12,6 @@ class SetEpochInfoHook(Hook):
def before_train_epoch(self, runner):
epoch = runner.epoch
model = runner.model
if is_module_wrapper(model):
if is_model_wrapper(model):
model = model.module
model.set_epoch(epoch)
Loading

0 comments on commit cbeb8a2

Please sign in to comment.