mirror of
https://github.com/open-mmlab/mmsegmentation.git
synced 2025-06-03 22:03:48 +08:00
[Fix]Remove modules from mmcv.runner and mmcv.utils (#1966)
* [WIP] mmcv-clean * [WIP]Remove modules from mmcv.runner and mmcv.utils * wip * fix import mmengine * remove ut * loadcheckpoint in mae
This commit is contained in:
parent
c93210262a
commit
50546da85c
@ -7,7 +7,7 @@ import warnings
|
||||
from argparse import ArgumentParser
|
||||
|
||||
import requests
|
||||
from mmcv import Config
|
||||
from mmengine import Config
|
||||
|
||||
from mmseg.apis import inference_model, init_model, show_result_pyplot
|
||||
from mmseg.utils import get_root_logger
|
||||
|
@ -3,8 +3,8 @@ import argparse
|
||||
import glob
|
||||
import os.path as osp
|
||||
|
||||
import mmcv
|
||||
from mmcv import Config
|
||||
from mmengine import Config
|
||||
from mmengine.fileio import dump, load
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -56,7 +56,7 @@ if __name__ == '__main__':
|
||||
continue
|
||||
|
||||
log_json_path = list(sorted(json_list))[-1]
|
||||
metric = mmcv.load(log_json_path)
|
||||
metric = load(log_json_path)
|
||||
if config not in metric.get('config', {}):
|
||||
print(f'{config} not included in {log_json_path}')
|
||||
continue
|
||||
@ -84,7 +84,7 @@ if __name__ == '__main__':
|
||||
new=new_metrics)
|
||||
|
||||
if metrics_out:
|
||||
mmcv.dump(result_dict, metrics_out, indent=4)
|
||||
dump(result_dict, metrics_out, indent=4)
|
||||
print('===================================')
|
||||
for config_name, metrics in result_dict.items():
|
||||
print(config_name, metrics)
|
||||
|
@ -2,9 +2,9 @@ import argparse
|
||||
import glob
|
||||
import os.path as osp
|
||||
|
||||
import mmcv
|
||||
from gather_models import get_final_results
|
||||
from mmcv import Config
|
||||
from mmengine import Config
|
||||
from mmengine.fileio import dump
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -50,7 +50,7 @@ if __name__ == '__main__':
|
||||
continue
|
||||
|
||||
# parse config
|
||||
cfg = mmcv.Config.fromfile(config)
|
||||
cfg = Config.fromfile(config)
|
||||
total_iters = cfg.runner.max_iters
|
||||
exp_metric = cfg.evaluation.metric
|
||||
if not isinstance(exp_metric, list):
|
||||
@ -93,7 +93,7 @@ if __name__ == '__main__':
|
||||
|
||||
# 4 save or print results
|
||||
if metrics_out:
|
||||
mmcv.dump(result_dict, metrics_out, indent=4)
|
||||
dump(result_dict, metrics_out, indent=4)
|
||||
print('===================================')
|
||||
for config_name, metrics in result_dict.items():
|
||||
print(config_name, metrics)
|
||||
|
@ -7,8 +7,10 @@ import os
|
||||
import os.path as osp
|
||||
import shutil
|
||||
|
||||
import mmcv
|
||||
import torch
|
||||
from mmengine import Config
|
||||
from mmengine.fileio import dump
|
||||
from mmengine.utils import mkdir_or_exist, scandir
|
||||
|
||||
# build schedule look-up table to automatically find the final model
|
||||
RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc']
|
||||
@ -100,10 +102,10 @@ def main():
|
||||
work_dir = args.work_dir
|
||||
collect_dir = args.collect_dir
|
||||
selected_config_name = args.config_name
|
||||
mmcv.mkdir_or_exist(collect_dir)
|
||||
mkdir_or_exist(collect_dir)
|
||||
|
||||
# find all models in the root directory to be gathered
|
||||
raw_configs = list(mmcv.scandir('./configs', '.py', recursive=True))
|
||||
raw_configs = list(scandir('./configs', '.py', recursive=True))
|
||||
|
||||
# filter configs that is not trained in the experiments dir
|
||||
used_configs = []
|
||||
@ -175,7 +177,7 @@ def main():
|
||||
print(f'dir {model_publish_dir} exists, no model found')
|
||||
|
||||
else:
|
||||
mmcv.mkdir_or_exist(model_publish_dir)
|
||||
mkdir_or_exist(model_publish_dir)
|
||||
|
||||
# convert model
|
||||
final_model_path = process_checkpoint(trained_model_path,
|
||||
@ -198,13 +200,13 @@ def main():
|
||||
if args.all:
|
||||
# copy config to guarantee reproducibility
|
||||
raw_config = osp.join('./configs', f'{config_name}.py')
|
||||
mmcv.Config.fromfile(raw_config).dump(
|
||||
Config.fromfile(raw_config).dump(
|
||||
osp.join(model_publish_dir, osp.basename(raw_config)))
|
||||
|
||||
publish_model_infos.append(model)
|
||||
|
||||
models = dict(models=publish_model_infos)
|
||||
mmcv.dump(models, osp.join(collect_dir, 'model_infos.json'), indent=4)
|
||||
dump(models, osp.join(collect_dir, 'model_infos.json'), indent=4)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -2,7 +2,7 @@
|
||||
import argparse
|
||||
import os.path as osp
|
||||
|
||||
from mmcv import Config
|
||||
from mmengine import Config
|
||||
|
||||
|
||||
def parse_args():
|
||||
|
@ -13,7 +13,7 @@ import re
|
||||
import sys
|
||||
|
||||
from lxml import etree
|
||||
from mmcv.fileio import dump
|
||||
from mmengine.fileio import dump
|
||||
|
||||
MMSEG_ROOT = osp.dirname(osp.dirname((osp.dirname(__file__))))
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from argparse import ArgumentParser
|
||||
|
||||
from mmengine.utils import revert_sync_batchnorm
|
||||
from mmengine.model import revert_sync_batchnorm
|
||||
|
||||
from mmseg.apis import inference_model, init_model, show_result_pyplot
|
||||
from mmseg.utils import register_all_modules
|
||||
|
@ -21,7 +21,7 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import torch\n",
|
||||
"from mmengine import revert_sync_batchnorm\n",
|
||||
"from mmengine.model.utils import revert_sync_batchnorm\n",
|
||||
"from mmseg.apis import init_model, inference_model, show_result_pyplot\n",
|
||||
"from mmseg.utils import register_all_modules\n",
|
||||
"register_all_modules()"
|
||||
|
@ -2,7 +2,7 @@
|
||||
from argparse import ArgumentParser
|
||||
|
||||
import cv2
|
||||
from mmengine.utils import revert_sync_batchnorm
|
||||
from mmengine.model.utils import revert_sync_batchnorm
|
||||
|
||||
from mmseg.apis import inference_model, init_model
|
||||
from mmseg.apis.inference import show_result_pyplot
|
||||
|
@ -9,6 +9,7 @@ import torch
|
||||
from mmengine import Config
|
||||
from mmengine.dataset import Compose
|
||||
from mmengine.runner import load_checkpoint
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
from mmseg.data import SegDataSample
|
||||
from mmseg.models import BaseSegmentor
|
||||
@ -179,7 +180,7 @@ def show_result_pyplot(model: BaseSegmentor,
|
||||
else:
|
||||
image = img
|
||||
if save_dir is not None:
|
||||
mmcv.mkdir_or_exist(save_dir)
|
||||
mkdir_or_exist(save_dir)
|
||||
# init visualizer
|
||||
visualizer = SegLocalVisualizer(
|
||||
vis_backends=[dict(type='LocalVisBackend')],
|
||||
|
@ -73,7 +73,7 @@ class BaseSegDataset(BaseDataset):
|
||||
reduce_zero_label (bool): Whether to mark label zero as ignored.
|
||||
Default to False.
|
||||
file_client_args (dict): Arguments to instantiate a FileClient.
|
||||
See :class:`mmcv.fileio.FileClient` for details.
|
||||
See :class:`mmengine.fileio.FileClient` for details.
|
||||
Defaults to ``dict(backend='disk')``.
|
||||
"""
|
||||
METAINFO: dict = dict()
|
||||
|
@ -2,7 +2,7 @@
|
||||
import numpy as np
|
||||
from mmcv.transforms import to_tensor
|
||||
from mmcv.transforms.base import BaseTransform
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.structures import PixelData
|
||||
|
||||
from mmseg.registry import TRANSFORMS
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -6,7 +6,7 @@ import mmcv
|
||||
import numpy as np
|
||||
from mmcv.transforms.base import BaseTransform
|
||||
from mmcv.transforms.utils import cache_randomness
|
||||
from mmcv.utils import is_tuple_of
|
||||
from mmengine.utils import is_tuple_of
|
||||
from numpy import random
|
||||
|
||||
from mmseg.datasets.dataset_wrappers import MultiImageMixDataset
|
||||
|
@ -4,6 +4,7 @@ import warnings
|
||||
from typing import Sequence
|
||||
|
||||
import mmcv
|
||||
from mmengine.fileio import FileClient
|
||||
from mmengine.hooks import Hook
|
||||
from mmengine.runner import Runner
|
||||
|
||||
@ -30,7 +31,7 @@ class SegVisualizationHook(Hook):
|
||||
show (bool): Whether to display the drawn image. Default to False.
|
||||
wait_time (float): The interval of show (s). Defaults to 0.
|
||||
file_client_args (dict): Arguments to instantiate a FileClient.
|
||||
See :class:`mmcv.fileio.FileClient` for details.
|
||||
See :class:`mmengine.fileio.FileClient` for details.
|
||||
Defaults to ``dict(backend='disk')``.
|
||||
"""
|
||||
|
||||
@ -81,7 +82,7 @@ class SegVisualizationHook(Hook):
|
||||
return
|
||||
|
||||
if self.file_client is None:
|
||||
self.file_client = mmcv.FileClient(**self.file_client_args)
|
||||
self.file_client = FileClient(**self.file_client_args)
|
||||
|
||||
if self.every_n_inner_iters(batch_idx, self.interval):
|
||||
for input_data, output in zip(data_batch, outputs):
|
||||
|
@ -2,10 +2,10 @@
|
||||
import os.path as osp
|
||||
from typing import Dict, List, Optional, Sequence
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.evaluator import BaseMetric
|
||||
from mmengine.logging import MMLogger, print_log
|
||||
from mmengine.utils import mkdir_or_exist, scandir
|
||||
from PIL import Image
|
||||
|
||||
from mmseg.registry import METRICS
|
||||
@ -60,7 +60,7 @@ class CitysMetric(BaseMetric):
|
||||
data_batch (Sequence[dict]): A batch of data from the dataloader.
|
||||
predictions (Sequence[dict]): A batch of outputs from the model.
|
||||
"""
|
||||
mmcv.mkdir_or_exist(self.suffix)
|
||||
mkdir_or_exist(self.suffix)
|
||||
|
||||
for pred in predictions:
|
||||
pred_label = pred['pred_sem_seg']['data'][0].cpu().numpy()
|
||||
@ -121,8 +121,7 @@ class CitysMetric(BaseMetric):
|
||||
ann_dir = results[0]
|
||||
# when evaluating with official cityscapesscripts,
|
||||
# **_gtFine_labelIds.png is used
|
||||
for seg_map in mmcv.scandir(
|
||||
ann_dir, 'gtFine_labelIds.png', recursive=True):
|
||||
for seg_map in scandir(ann_dir, 'gtFine_labelIds.png', recursive=True):
|
||||
seg_map_list.append(osp.join(ann_dir, seg_map))
|
||||
pred_list.append(CSEval.getPrediction(CSEval.args, seg_map))
|
||||
metric = dict()
|
||||
|
@ -7,9 +7,9 @@ import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from mmcv.cnn import build_norm_layer
|
||||
from mmcv.cnn.bricks.drop import build_dropout
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, kaiming_init,
|
||||
trunc_normal_)
|
||||
from mmengine.model import BaseModule, ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, kaiming_init,
|
||||
trunc_normal_)
|
||||
from mmengine.runner.checkpoint import _load_checkpoint
|
||||
from torch.nn.modules.batchnorm import _BatchNorm
|
||||
from torch.nn.modules.utils import _pair as to_2tuple
|
||||
|
@ -5,8 +5,8 @@ import torch
|
||||
import torch.nn as nn
|
||||
import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import ConvModule, build_conv_layer, build_norm_layer
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
|
||||
|
@ -3,8 +3,8 @@ import warnings
|
||||
|
||||
import torch.nn as nn
|
||||
from mmcv.cnn import build_conv_layer, build_norm_layer
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmengine.model import BaseModule, ModuleList, Sequential
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import Upsample, resize
|
||||
|
@ -3,9 +3,10 @@ import math
|
||||
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, kaiming_init,
|
||||
from mmengine.model import ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, kaiming_init,
|
||||
trunc_normal_)
|
||||
from mmcv.runner import ModuleList, _load_checkpoint
|
||||
from mmengine.runner.checkpoint import _load_checkpoint
|
||||
from torch.nn.modules.batchnorm import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
|
@ -8,9 +8,9 @@ import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import Conv2d, build_activation_layer, build_norm_layer
|
||||
from mmcv.cnn.bricks.drop import build_dropout
|
||||
from mmcv.cnn.bricks.transformer import MultiheadAttention
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, normal_init,
|
||||
trunc_normal_init)
|
||||
from mmengine.model import BaseModule, ModuleList, Sequential
|
||||
from mmengine.model.weight_init import (constant_init, normal_init,
|
||||
trunc_normal_init)
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import PatchEmbed, nchw_to_nlc, nlc_to_nchw
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import warnings
|
||||
|
||||
import mmcv
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmcv.cnn.bricks import Conv2dAdaptivePadding
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.utils import is_tuple_of
|
||||
from torch.nn.modules.batchnorm import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
@ -104,7 +104,7 @@ class MobileNetV3(BaseModule):
|
||||
|
||||
assert arch in self.arch_settings
|
||||
assert isinstance(reduction_factor, int) and reduction_factor > 0
|
||||
assert mmcv.is_tuple_of(out_indices, int)
|
||||
assert is_tuple_of(out_indices, int)
|
||||
for index in out_indices:
|
||||
if index not in range(0, len(self.arch_settings[arch]) + 2):
|
||||
raise ValueError(
|
||||
|
@ -4,8 +4,8 @@ import warnings
|
||||
import torch.nn as nn
|
||||
import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import build_conv_layer, build_norm_layer, build_plugin_layer
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import ResLayer
|
||||
|
@ -9,12 +9,12 @@ import torch.nn.functional as F
|
||||
import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import build_norm_layer
|
||||
from mmcv.cnn.bricks.transformer import FFN, build_dropout
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, trunc_normal_,
|
||||
trunc_normal_init)
|
||||
from mmcv.runner import CheckpointLoader, load_state_dict
|
||||
from mmcv.utils import to_2tuple
|
||||
from mmengine.logging import print_log
|
||||
from mmengine.model import BaseModule, ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, trunc_normal_,
|
||||
trunc_normal_init)
|
||||
from mmengine.runner import CheckpointLoader, load_state_dict
|
||||
from mmengine.utils import to_2tuple
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils.embed import PatchEmbed, PatchMerging
|
||||
|
@ -4,8 +4,8 @@ try:
|
||||
except ImportError:
|
||||
timm = None
|
||||
|
||||
from mmcv.cnn.bricks.registry import NORM_LAYERS
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.registry import MODELS as MMENGINE_MODELS
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
|
||||
@ -39,7 +39,7 @@ class TIMMBackbone(BaseModule):
|
||||
raise RuntimeError('timm is not installed')
|
||||
super(TIMMBackbone, self).__init__(init_cfg)
|
||||
if 'norm_layer' in kwargs:
|
||||
kwargs['norm_layer'] = NORM_LAYERS.get(kwargs['norm_layer'])
|
||||
kwargs['norm_layer'] = MMENGINE_MODELS.get(kwargs['norm_layer'])
|
||||
self.timm_model = timm.create_model(
|
||||
model_name=model_name,
|
||||
features_only=features_only,
|
||||
|
@ -8,9 +8,9 @@ import torch.nn.functional as F
|
||||
from mmcv.cnn import build_norm_layer
|
||||
from mmcv.cnn.bricks.drop import build_dropout
|
||||
from mmcv.cnn.bricks.transformer import FFN
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, normal_init,
|
||||
trunc_normal_init)
|
||||
from mmengine.model import BaseModule, ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, normal_init,
|
||||
trunc_normal_init)
|
||||
from torch.nn.modules.batchnorm import _BatchNorm
|
||||
|
||||
from mmseg.models.backbones.mit import EfficientMultiheadAttention
|
||||
|
@ -3,10 +3,9 @@ import warnings
|
||||
|
||||
import torch.nn as nn
|
||||
import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,
|
||||
build_norm_layer)
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import UpConvBlock, Upsample
|
||||
@ -85,7 +84,7 @@ class BasicConvBlock(nn.Module):
|
||||
return out
|
||||
|
||||
|
||||
@UPSAMPLE_LAYERS.register_module()
|
||||
@MODELS.register_module()
|
||||
class DeconvModule(nn.Module):
|
||||
"""Deconvolution upsample module in decoder for UNet (2X upsample).
|
||||
|
||||
@ -146,7 +145,7 @@ class DeconvModule(nn.Module):
|
||||
return out
|
||||
|
||||
|
||||
@UPSAMPLE_LAYERS.register_module()
|
||||
@MODELS.register_module()
|
||||
class InterpConv(nn.Module):
|
||||
"""Interpolation upsample module in decoder for UNet.
|
||||
|
||||
|
@ -7,11 +7,11 @@ import torch.nn as nn
|
||||
import torch.utils.checkpoint as cp
|
||||
from mmcv.cnn import build_norm_layer
|
||||
from mmcv.cnn.bricks.transformer import FFN, MultiheadAttention
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, kaiming_init,
|
||||
trunc_normal_)
|
||||
from mmcv.runner import CheckpointLoader, load_state_dict
|
||||
from mmengine.logging import print_log
|
||||
from mmengine.model import BaseModule, ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, kaiming_init,
|
||||
trunc_normal_)
|
||||
from mmengine.runner.checkpoint import CheckpointLoader, load_state_dict
|
||||
from torch.nn.modules.batchnorm import _BatchNorm
|
||||
from torch.nn.modules.utils import _pair as to_2tuple
|
||||
|
||||
|
@ -5,8 +5,7 @@ import torch
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer
|
||||
from mmcv.cnn.bricks.transformer import (FFN, TRANSFORMER_LAYER,
|
||||
MultiheadAttention,
|
||||
from mmcv.cnn.bricks.transformer import (FFN, MultiheadAttention,
|
||||
build_transformer_layer)
|
||||
from mmengine.logging import print_log
|
||||
from torch import Tensor
|
||||
@ -16,7 +15,7 @@ from mmseg.registry import MODELS
|
||||
from mmseg.utils import SampleList
|
||||
|
||||
|
||||
@TRANSFORMER_LAYER.register_module()
|
||||
@MODELS.register_module()
|
||||
class KernelUpdator(nn.Module):
|
||||
"""Dynamic Kernel Updator in Kernel Update Head.
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
from mmcv import is_tuple_of
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmengine.utils import is_tuple_of
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import resize
|
||||
|
@ -3,9 +3,9 @@ import torch
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from mmcv.cnn import build_norm_layer
|
||||
from mmcv.cnn.utils.weight_init import (constant_init, trunc_normal_,
|
||||
from mmengine.model import ModuleList
|
||||
from mmengine.model.weight_init import (constant_init, trunc_normal_,
|
||||
trunc_normal_init)
|
||||
from mmcv.runner import ModuleList
|
||||
|
||||
from mmseg.models.backbones.vit import TransformerEncoderLayer
|
||||
from mmseg.registry import MODELS
|
||||
@ -17,7 +17,7 @@ class SegmenterMaskTransformerHead(BaseDecodeHead):
|
||||
"""Segmenter: Transformer for Semantic Segmentation.
|
||||
|
||||
This head is the implementation of
|
||||
`Segmenter: <https://arxiv.org/abs/2105.05633>`_.
|
||||
`Segmenter: <https://arxiv.org/abs/2105.05633>`_.
|
||||
|
||||
Args:
|
||||
backbone_cfg:(dict): Config of backbone of
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import torch
|
||||
import torch.nn.functional as F
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.structures import PixelData
|
||||
from torch import Tensor
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
|
@ -3,10 +3,10 @@
|
||||
ch/lovasz_losses.py Lovasz-Softmax and Jaccard hinge loss in PyTorch Maxim
|
||||
Berman 2018 ESAT-PSI KU Leuven (MIT License)"""
|
||||
|
||||
import mmcv
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from mmengine.utils import is_list_of
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from .utils import get_class_weight, weight_reduce_loss
|
||||
@ -265,7 +265,7 @@ class LovaszLoss(nn.Module):
|
||||
self.cls_criterion = lovasz_hinge
|
||||
else:
|
||||
self.cls_criterion = lovasz_softmax
|
||||
assert classes in ('all', 'present') or mmcv.is_list_of(classes, int)
|
||||
assert classes in ('all', 'present') or is_list_of(classes, int)
|
||||
if not per_image:
|
||||
assert reduction == 'none', "reduction should be 'none' when \
|
||||
per_image is False."
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import functools
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
import torch
|
||||
import torch.nn.functional as F
|
||||
from mmengine.fileio import load
|
||||
|
||||
|
||||
def get_class_weight(class_weight):
|
||||
@ -20,7 +20,7 @@ def get_class_weight(class_weight):
|
||||
class_weight = np.load(class_weight)
|
||||
else:
|
||||
# pkl, json or yaml
|
||||
class_weight = mmcv.load(class_weight)
|
||||
class_weight = load(class_weight)
|
||||
|
||||
return class_weight
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import torch.nn as nn
|
||||
from mmcv.cnn import ConvModule, xavier_init
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmengine.model.weight_init import xavier_init
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from ..utils import resize
|
||||
|
@ -2,8 +2,8 @@
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from typing import List, Tuple
|
||||
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.model import BaseModel
|
||||
from mmengine.structures import PixelData
|
||||
from torch import Tensor
|
||||
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -5,8 +5,8 @@ from typing import Sequence
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from mmcv.cnn import build_conv_layer, build_norm_layer
|
||||
from mmcv.utils import to_2tuple
|
||||
from mmengine.model import BaseModule
|
||||
from mmengine.utils import to_2tuple
|
||||
|
||||
|
||||
class AdaptivePadding(nn.Module):
|
||||
@ -104,8 +104,8 @@ class PatchEmbed(BaseModule):
|
||||
input_size (int | tuple | None): The size of input, which will be
|
||||
used to calculate the out size. Only work when `dynamic_size`
|
||||
is False. Default: None.
|
||||
init_cfg (`mmcv.ConfigDict`, optional): The Config for initialization.
|
||||
Default: None.
|
||||
init_cfg (`mmengine.ConfigDict`, optional): The Config for
|
||||
initialization. Default: None.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import mmcv
|
||||
import torch.nn as nn
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmengine.utils import is_tuple_of
|
||||
|
||||
from .make_divisible import make_divisible
|
||||
|
||||
@ -34,7 +34,7 @@ class SELayer(nn.Module):
|
||||
if isinstance(act_cfg, dict):
|
||||
act_cfg = (act_cfg, act_cfg)
|
||||
assert len(act_cfg) == 2
|
||||
assert mmcv.is_tuple_of(act_cfg, dict)
|
||||
assert is_tuple_of(act_cfg, dict)
|
||||
self.global_avgpool = nn.AdaptiveAvgPool2d(1)
|
||||
self.conv1 = ConvModule(
|
||||
in_channels=channels,
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import torch
|
||||
from mmcv.cnn import ConvModule, constant_init
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmengine.model.weight_init import constant_init
|
||||
from torch import nn as nn
|
||||
from torch.nn import functional as F
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from mmengine.data import BaseDataElement, PixelData
|
||||
from mmengine.structures import BaseDataElement, PixelData
|
||||
|
||||
|
||||
class SegDataSample(BaseDataElement):
|
||||
@ -15,7 +15,7 @@ class SegDataSample(BaseDataElement):
|
||||
Examples:
|
||||
>>> import torch
|
||||
>>> import numpy as np
|
||||
>>> from mmengine.data import PixelData
|
||||
>>> from mmengine.structures import PixelData
|
||||
>>> from mmseg.core import SegDataSample
|
||||
|
||||
>>> data_sample = SegDataSample()
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import mmcv
|
||||
from mmengine.utils import is_str
|
||||
|
||||
|
||||
def cityscapes_classes():
|
||||
@ -289,7 +289,7 @@ def get_classes(dataset):
|
||||
for alias in aliases:
|
||||
alias2name[alias] = name
|
||||
|
||||
if mmcv.is_str(dataset):
|
||||
if is_str(dataset):
|
||||
if dataset in alias2name:
|
||||
labels = eval(alias2name[dataset] + '_classes()')
|
||||
else:
|
||||
@ -306,7 +306,7 @@ def get_palette(dataset):
|
||||
for alias in aliases:
|
||||
alias2name[alias] = name
|
||||
|
||||
if mmcv.is_str(dataset):
|
||||
if is_str(dataset):
|
||||
if dataset in alias2name:
|
||||
labels = eval(alias2name[dataset] + '_palette()')
|
||||
else:
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from mmcv.utils import collect_env as collect_base_env
|
||||
from mmcv.utils import get_git_hash
|
||||
from mmengine.utils import get_git_hash
|
||||
from mmengine.utils.dl_utils import collect_env as collect_base_env
|
||||
|
||||
import mmseg
|
||||
|
||||
|
@ -2,9 +2,9 @@
|
||||
from typing import Dict, List, Optional, Tuple
|
||||
|
||||
import numpy as np
|
||||
from mmengine import Visualizer
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.dist import master_only
|
||||
from mmengine.structures import PixelData
|
||||
from mmengine.visualization import Visualizer
|
||||
|
||||
from mmseg.registry import VISUALIZERS
|
||||
from mmseg.structures import SegDataSample
|
||||
@ -28,7 +28,7 @@ class SegLocalVisualizer(Visualizer):
|
||||
Examples:
|
||||
>>> import numpy as np
|
||||
>>> import torch
|
||||
>>> from mmengine.data import PixelData
|
||||
>>> from mmengine.structures import PixelData
|
||||
>>> from mmseg.data import SegDataSample
|
||||
>>> from mmseg.engine.visualization import SegLocalVisualizer
|
||||
|
||||
|
@ -3,13 +3,14 @@ import glob
|
||||
import os
|
||||
from os.path import dirname, exists, isdir, join, relpath
|
||||
|
||||
import numpy as np
|
||||
# import numpy as np
|
||||
from mmengine import Config
|
||||
from mmengine.dataset import Compose
|
||||
# from mmengine.dataset import Compose
|
||||
from torch import nn
|
||||
|
||||
from mmseg.models import build_segmentor
|
||||
from mmseg.utils import register_all_modules
|
||||
|
||||
# from mmseg.utils import register_all_modules
|
||||
|
||||
|
||||
def _get_config_directory():
|
||||
@ -63,69 +64,70 @@ def test_config_build_segmentor():
|
||||
_check_decode_head(head_config, segmentor.decode_head)
|
||||
|
||||
|
||||
def test_config_data_pipeline():
|
||||
"""Test whether the data pipeline is valid and can process corner cases.
|
||||
# def test_config_data_pipeline():
|
||||
# """Test whether the data pipeline is valid and can process corner cases.
|
||||
|
||||
CommandLine:
|
||||
xdoctest -m tests/test_config.py test_config_build_data_pipeline
|
||||
"""
|
||||
# CommandLine:
|
||||
# xdoctest -m tests/test_config.py test_config_build_data_pipeline
|
||||
# """
|
||||
|
||||
register_all_modules()
|
||||
config_dpath = _get_config_directory()
|
||||
print('Found config_dpath = {!r}'.format(config_dpath))
|
||||
# register_all_modules()
|
||||
# config_dpath = _get_config_directory()
|
||||
# print('Found config_dpath = {!r}'.format(config_dpath))
|
||||
|
||||
import glob
|
||||
config_fpaths = list(glob.glob(join(config_dpath, '**', '*.py')))
|
||||
config_fpaths = [p for p in config_fpaths if p.find('_base_') == -1]
|
||||
config_names = [relpath(p, config_dpath) for p in config_fpaths]
|
||||
# import glob
|
||||
# config_fpaths = list(glob.glob(join(config_dpath, '**', '*.py')))
|
||||
# config_fpaths = [p for p in config_fpaths if p.find('_base_') == -1]
|
||||
# config_names = [relpath(p, config_dpath) for p in config_fpaths]
|
||||
|
||||
print('Using {} config files'.format(len(config_names)))
|
||||
# print('Using {} config files'.format(len(config_names)))
|
||||
|
||||
for config_fname in config_names:
|
||||
config_fpath = join(config_dpath, config_fname)
|
||||
print(
|
||||
'Building data pipeline, config_fpath = {!r}'.format(config_fpath))
|
||||
config_mod = Config.fromfile(config_fpath)
|
||||
# for config_fname in config_names:
|
||||
# config_fpath = join(config_dpath, config_fname)
|
||||
# print(
|
||||
# 'Building data pipeline, config_fpath = {!r}'.
|
||||
# format(config_fpath))
|
||||
# config_mod = Config.fromfile(config_fpath)
|
||||
|
||||
# remove loading pipeline
|
||||
load_img_pipeline = config_mod.train_pipeline.pop(0)
|
||||
to_float32 = load_img_pipeline.get('to_float32', False)
|
||||
config_mod.train_pipeline.pop(0)
|
||||
config_mod.test_pipeline.pop(0)
|
||||
# remove loading annotation in test pipeline
|
||||
config_mod.test_pipeline.pop(1)
|
||||
# # remove loading pipeline
|
||||
# load_img_pipeline = config_mod.train_pipeline.pop(0)
|
||||
# to_float32 = load_img_pipeline.get('to_float32', False)
|
||||
# config_mod.train_pipeline.pop(0)
|
||||
# config_mod.test_pipeline.pop(0)
|
||||
# # remove loading annotation in test pipeline
|
||||
# config_mod.test_pipeline.pop(1)
|
||||
|
||||
train_pipeline = Compose(config_mod.train_pipeline)
|
||||
test_pipeline = Compose(config_mod.test_pipeline)
|
||||
# train_pipeline = Compose(config_mod.train_pipeline)
|
||||
# test_pipeline = Compose(config_mod.test_pipeline)
|
||||
|
||||
img = np.random.randint(0, 255, size=(1024, 2048, 3), dtype=np.uint8)
|
||||
if to_float32:
|
||||
img = img.astype(np.float32)
|
||||
seg = np.random.randint(0, 255, size=(1024, 2048, 1), dtype=np.uint8)
|
||||
# img = np.random.randint(0, 255, size=(1024, 2048, 3), dtype=np.uint8)
|
||||
# if to_float32:
|
||||
# img = img.astype(np.float32)
|
||||
# seg = np.random.randint(0, 255, size=(1024, 2048, 1), dtype=np.uint8)
|
||||
|
||||
results = dict(
|
||||
filename='test_img.png',
|
||||
ori_filename='test_img.png',
|
||||
img=img,
|
||||
img_shape=img.shape,
|
||||
ori_shape=img.shape,
|
||||
gt_seg_map=seg)
|
||||
results['seg_fields'] = ['gt_seg_map']
|
||||
# results = dict(
|
||||
# filename='test_img.png',
|
||||
# ori_filename='test_img.png',
|
||||
# img=img,
|
||||
# img_shape=img.shape,
|
||||
# ori_shape=img.shape,
|
||||
# gt_seg_map=seg)
|
||||
# results['seg_fields'] = ['gt_seg_map']
|
||||
|
||||
print('Test training data pipeline: \n{!r}'.format(train_pipeline))
|
||||
output_results = train_pipeline(results)
|
||||
assert output_results is not None
|
||||
# print('Test training data pipeline: \n{!r}'.format(train_pipeline))
|
||||
# output_results = train_pipeline(results)
|
||||
# assert output_results is not None
|
||||
|
||||
results = dict(
|
||||
filename='test_img.png',
|
||||
ori_filename='test_img.png',
|
||||
img=img,
|
||||
img_shape=img.shape,
|
||||
ori_shape=img.shape,
|
||||
)
|
||||
print('Test testing data pipeline: \n{!r}'.format(test_pipeline))
|
||||
output_results = test_pipeline(results)
|
||||
assert output_results is not None
|
||||
# results = dict(
|
||||
# filename='test_img.png',
|
||||
# ori_filename='test_img.png',
|
||||
# img=img,
|
||||
# img_shape=img.shape,
|
||||
# ori_shape=img.shape,
|
||||
# )
|
||||
# print('Test testing data pipeline: \n{!r}'.format(test_pipeline))
|
||||
# output_results = test_pipeline(results)
|
||||
# assert output_results is not None
|
||||
|
||||
|
||||
def _check_decode_head(decode_head_cfg, decode_head):
|
||||
|
@ -4,7 +4,7 @@ import os.path as osp
|
||||
import unittest
|
||||
|
||||
import numpy as np
|
||||
from mmengine.data import BaseDataElement
|
||||
from mmengine.structures import BaseDataElement
|
||||
|
||||
from mmseg.datasets.transforms import PackSegInputs
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -3,7 +3,7 @@ from unittest import TestCase
|
||||
from unittest.mock import Mock
|
||||
|
||||
import torch
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.structures import PixelData
|
||||
|
||||
from mmseg.engine.hooks import SegVisualizationHook
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -3,7 +3,7 @@ from unittest import TestCase
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
from mmengine.data import BaseDataElement, PixelData
|
||||
from mmengine.structures import BaseDataElement, PixelData
|
||||
|
||||
from mmseg.evaluation import CitysMetric
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -3,7 +3,7 @@ from unittest import TestCase
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
from mmengine.data import BaseDataElement, PixelData
|
||||
from mmengine.structures import BaseDataElement, PixelData
|
||||
|
||||
from mmseg.evaluation import IoUMetric
|
||||
from mmseg.structures import SegDataSample
|
||||
|
@ -2,7 +2,8 @@
|
||||
import mmcv
|
||||
import pytest
|
||||
import torch
|
||||
from mmcv.utils import TORCH_VERSION, digit_version
|
||||
from mmengine.utils import digit_version
|
||||
from mmengine.utils.dl_utils import TORCH_VERSION
|
||||
|
||||
from mmseg.models.utils import (InvertedResidual, InvertedResidualV3, SELayer,
|
||||
make_divisible)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import pytest
|
||||
import torch
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
|
||||
from mmseg.models.backbones.hrnet import HRModule, HRNet
|
||||
from mmseg.models.backbones.resnet import BasicBlock, Bottleneck
|
||||
|
@ -2,7 +2,7 @@
|
||||
import pytest
|
||||
import torch
|
||||
from mmcv.ops import DeformConv2dPack
|
||||
from mmcv.utils.parrots_wrapper import _BatchNorm
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm
|
||||
from torch.nn.modules import AvgPool2d, GroupNorm
|
||||
|
||||
from mmseg.models.backbones import ResNet, ResNetV1d
|
||||
|
@ -1,11 +1,12 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from unittest import TestCase
|
||||
|
||||
import torch
|
||||
from mmengine.data import PixelData
|
||||
|
||||
from mmseg.models import SegDataPreProcessor
|
||||
from mmseg.structures import SegDataSample
|
||||
|
||||
# import torch
|
||||
# from mmengine.structures import PixelData
|
||||
|
||||
# from mmseg.structures import SegDataSample
|
||||
|
||||
|
||||
class TestSegDataPreProcessor(TestCase):
|
||||
@ -30,16 +31,16 @@ class TestSegDataPreProcessor(TestCase):
|
||||
with self.assertRaises(AssertionError):
|
||||
SegDataPreProcessor(bgr_to_rgb=True, rgb_to_bgr=True)
|
||||
|
||||
def test_forward(self):
|
||||
data_sample = SegDataSample()
|
||||
data_sample.gt_sem_seg = PixelData(
|
||||
**{'data': torch.randint(0, 10, (1, 11, 10))})
|
||||
processor = SegDataPreProcessor(
|
||||
mean=[0, 0, 0], std=[1, 1, 1], size=(20, 20))
|
||||
data = {
|
||||
'inputs': torch.randint(0, 256, (3, 11, 10)),
|
||||
'data_sample': data_sample
|
||||
}
|
||||
inputs, data_samples = processor([data, data], training=True)
|
||||
self.assertEqual(inputs.shape, (2, 3, 20, 20))
|
||||
self.assertEqual(len(data_samples), 2)
|
||||
# def test_forward(self):
|
||||
# data_sample = SegDataSample()
|
||||
# data_sample.gt_sem_seg = PixelData(
|
||||
# **{'data': torch.randint(0, 10, (1, 11, 10))})
|
||||
# processor = SegDataPreProcessor(
|
||||
# mean=[0, 0, 0], std=[1, 1, 1], size=(20, 20))
|
||||
# data = {
|
||||
# 'inputs': torch.randint(0, 256, (3, 11, 10)),
|
||||
# 'data_sample': data_sample
|
||||
# }
|
||||
# inputs, data_samples = processor([data, data], training=True)
|
||||
# self.assertEqual(inputs.shape, (2, 3, 20, 20))
|
||||
# self.assertEqual(len(data_samples), 2)
|
||||
|
@ -8,9 +8,9 @@ import numpy as np
|
||||
import pytest
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
from mmcv import is_list_of, is_tuple_of
|
||||
from mmcv.cnn.utils import revert_sync_batchnorm
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.model.utils import revert_sync_batchnorm
|
||||
from mmengine.structures import PixelData
|
||||
from mmengine.utils import is_list_of, is_tuple_of
|
||||
from torch import Tensor
|
||||
|
||||
from mmseg.structures import SegDataSample
|
||||
@ -85,7 +85,7 @@ def _get_config_directory():
|
||||
|
||||
def _get_config_module(fname):
|
||||
"""Load a configuration as a python module."""
|
||||
from mmcv import Config
|
||||
from mmengine import Config
|
||||
config_dpath = _get_config_directory()
|
||||
config_fpath = join(config_dpath, fname)
|
||||
config_mod = Config.fromfile(config_fpath)
|
||||
|
@ -2,7 +2,7 @@
|
||||
import pytest
|
||||
import torch
|
||||
from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule
|
||||
from mmcv.utils.parrots_wrapper import SyncBatchNorm
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import SyncBatchNorm
|
||||
|
||||
from mmseg.models.decode_heads import DepthwiseSeparableFCNHead, FCNHead
|
||||
from .utils import to_cuda
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from mmcv.cnn import ConvModule
|
||||
from mmcv.utils.parrots_wrapper import SyncBatchNorm
|
||||
from mmengine.utils.dl_utils.parrots_wrapper import SyncBatchNorm
|
||||
|
||||
|
||||
def _conv_has_norm(module, sync_bn):
|
||||
|
@ -4,7 +4,7 @@ from unittest import TestCase
|
||||
import numpy as np
|
||||
import pytest
|
||||
import torch
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.structures import PixelData
|
||||
|
||||
from mmseg.structures import SegDataSample
|
||||
|
||||
|
@ -8,7 +8,7 @@ import cv2
|
||||
import mmcv
|
||||
import numpy as np
|
||||
import torch
|
||||
from mmengine.data import PixelData
|
||||
from mmengine.structures import PixelData
|
||||
|
||||
from mmseg.structures import SegDataSample
|
||||
from mmseg.visualization import SegLocalVisualizer
|
||||
|
@ -3,13 +3,12 @@ import argparse
|
||||
import os.path as osp
|
||||
import time
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
import torch
|
||||
from mmcv import Config
|
||||
from mmcv.runner import load_checkpoint, wrap_fp16_model
|
||||
from mmengine.runner import Runner
|
||||
from mmengine.utils import revert_sync_batchnorm
|
||||
from mmengine import Config
|
||||
from mmengine.fileio import dump, mkdir_or_exist
|
||||
from mmengine.model.utils import revert_sync_batchnorm
|
||||
from mmengine.runner import Runner, load_checkpoint, wrap_fp16_model
|
||||
|
||||
from mmseg.registry import MODELS
|
||||
from mmseg.utils import register_all_modules
|
||||
@ -36,13 +35,13 @@ def main():
|
||||
cfg = Config.fromfile(args.config)
|
||||
timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime())
|
||||
if args.work_dir is not None:
|
||||
mmcv.mkdir_or_exist(osp.abspath(args.work_dir))
|
||||
mkdir_or_exist(osp.abspath(args.work_dir))
|
||||
json_file = osp.join(args.work_dir, f'fps_{timestamp}.json')
|
||||
else:
|
||||
# use config filename as default work_dir if cfg.work_dir is None
|
||||
work_dir = osp.join('./work_dirs',
|
||||
osp.splitext(osp.basename(args.config))[0])
|
||||
mmcv.mkdir_or_exist(osp.abspath(work_dir))
|
||||
mkdir_or_exist(osp.abspath(work_dir))
|
||||
json_file = osp.join(work_dir, f'fps_{timestamp}.json')
|
||||
|
||||
repeat_times = args.repeat_times
|
||||
@ -112,7 +111,7 @@ def main():
|
||||
f'{benchmark_dict["average_fps"]}')
|
||||
print(f'The variance of {repeat_times} evaluations: '
|
||||
f'{benchmark_dict["fps_variance"]}')
|
||||
mmcv.dump(benchmark_dict, json_file, indent=4)
|
||||
dump(benchmark_dict, json_file, indent=4)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -3,10 +3,10 @@ import argparse
|
||||
import os
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from matplotlib.ticker import MultipleLocator
|
||||
from mmcv import Config, DictAction
|
||||
from mmengine import Config, DictAction
|
||||
from mmengine.utils import ProgressBar, load
|
||||
|
||||
from mmseg.datasets import build_dataset
|
||||
|
||||
@ -53,7 +53,7 @@ def calculate_confusion_matrix(dataset, results):
|
||||
n = len(dataset.CLASSES)
|
||||
confusion_matrix = np.zeros(shape=[n, n])
|
||||
assert len(dataset) == len(results)
|
||||
prog_bar = mmcv.ProgressBar(len(results))
|
||||
prog_bar = ProgressBar(len(results))
|
||||
for idx, per_img_res in enumerate(results):
|
||||
res_segm = per_img_res
|
||||
gt_segm = dataset.get_gt_seg_map_by_idx(idx)
|
||||
@ -155,7 +155,7 @@ def main():
|
||||
if args.cfg_options is not None:
|
||||
cfg.merge_from_dict(args.cfg_options)
|
||||
|
||||
results = mmcv.load(args.prediction_path)
|
||||
results = load(args.prediction_path)
|
||||
|
||||
assert isinstance(results, list)
|
||||
if isinstance(results[0], np.ndarray):
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import argparse
|
||||
|
||||
from mmcv import Config
|
||||
from mmcv.cnn import get_model_complexity_info
|
||||
from mmengine import Config
|
||||
|
||||
from mmseg.models import build_segmentor
|
||||
|
||||
|
@ -6,6 +6,7 @@ import tempfile
|
||||
import zipfile
|
||||
|
||||
import mmcv
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
CHASE_DB1_LEN = 28 * 3
|
||||
TRAINING_LEN = 60
|
||||
@ -30,13 +31,13 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
print('Extracting CHASEDB1.zip...')
|
||||
|
@ -2,8 +2,9 @@
|
||||
import argparse
|
||||
import os.path as osp
|
||||
|
||||
import mmcv
|
||||
from cityscapesscripts.preparation.json2labelImg import json2labelImg
|
||||
from mmengine.utils import (mkdir_or_exist, scandir, track_parallel_progress,
|
||||
track_progress)
|
||||
|
||||
|
||||
def convert_json_to_label(json_file):
|
||||
@ -27,25 +28,24 @@ def main():
|
||||
args = parse_args()
|
||||
cityscapes_path = args.cityscapes_path
|
||||
out_dir = args.out_dir if args.out_dir else cityscapes_path
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(out_dir)
|
||||
|
||||
gt_dir = osp.join(cityscapes_path, args.gt_dir)
|
||||
|
||||
poly_files = []
|
||||
for poly in mmcv.scandir(gt_dir, '_polygons.json', recursive=True):
|
||||
for poly in scandir(gt_dir, '_polygons.json', recursive=True):
|
||||
poly_file = osp.join(gt_dir, poly)
|
||||
poly_files.append(poly_file)
|
||||
if args.nproc > 1:
|
||||
mmcv.track_parallel_progress(convert_json_to_label, poly_files,
|
||||
args.nproc)
|
||||
track_parallel_progress(convert_json_to_label, poly_files, args.nproc)
|
||||
else:
|
||||
mmcv.track_progress(convert_json_to_label, poly_files)
|
||||
track_progress(convert_json_to_label, poly_files)
|
||||
|
||||
split_names = ['train', 'val', 'test']
|
||||
|
||||
for split in split_names:
|
||||
filenames = []
|
||||
for poly in mmcv.scandir(
|
||||
for poly in scandir(
|
||||
osp.join(gt_dir, split), '_polygons.json', recursive=True):
|
||||
filenames.append(poly.replace('_gtFine_polygons.json', ''))
|
||||
with open(osp.join(out_dir, f'{split}.txt'), 'w') as f:
|
||||
|
@ -4,8 +4,9 @@ import os.path as osp
|
||||
import shutil
|
||||
from functools import partial
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import (mkdir_or_exist, track_parallel_progress,
|
||||
track_progress)
|
||||
from PIL import Image
|
||||
from scipy.io import loadmat
|
||||
|
||||
@ -251,10 +252,10 @@ def main():
|
||||
out_img_dir = osp.join(out_dir, 'images')
|
||||
out_mask_dir = osp.join(out_dir, 'annotations')
|
||||
|
||||
mmcv.mkdir_or_exist(osp.join(out_img_dir, 'train2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_img_dir, 'test2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2014'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'test2014'))
|
||||
mkdir_or_exist(osp.join(out_img_dir, 'train2014'))
|
||||
mkdir_or_exist(osp.join(out_img_dir, 'test2014'))
|
||||
mkdir_or_exist(osp.join(out_mask_dir, 'train2014'))
|
||||
mkdir_or_exist(osp.join(out_mask_dir, 'test2014'))
|
||||
|
||||
train_list, test_list = generate_coco_list(coco_path)
|
||||
assert (len(train_list) +
|
||||
@ -262,7 +263,7 @@ def main():
|
||||
len(train_list), len(test_list))
|
||||
|
||||
if args.nproc > 1:
|
||||
mmcv.track_parallel_progress(
|
||||
track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
@ -272,7 +273,7 @@ def main():
|
||||
is_train=True),
|
||||
train_list,
|
||||
nproc=nproc)
|
||||
mmcv.track_parallel_progress(
|
||||
track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
@ -283,7 +284,7 @@ def main():
|
||||
test_list,
|
||||
nproc=nproc)
|
||||
else:
|
||||
mmcv.track_progress(
|
||||
track_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
@ -291,7 +292,7 @@ def main():
|
||||
out_img_dir=out_img_dir,
|
||||
out_mask_dir=out_mask_dir,
|
||||
is_train=True), train_list)
|
||||
mmcv.track_progress(
|
||||
track_progress(
|
||||
partial(
|
||||
convert_to_trainID,
|
||||
in_img_dir=osp.join(coco_path, 'images'),
|
||||
|
@ -5,8 +5,9 @@ import shutil
|
||||
from functools import partial
|
||||
from glob import glob
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import (mkdir_or_exist, track_parallel_progress,
|
||||
track_progress)
|
||||
from PIL import Image
|
||||
|
||||
COCO_LEN = 123287
|
||||
@ -222,8 +223,8 @@ def main():
|
||||
out_img_dir = osp.join(out_dir, 'images')
|
||||
out_mask_dir = osp.join(out_dir, 'annotations')
|
||||
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'train2017'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_mask_dir, 'val2017'))
|
||||
mkdir_or_exist(osp.join(out_mask_dir, 'train2017'))
|
||||
mkdir_or_exist(osp.join(out_mask_dir, 'val2017'))
|
||||
|
||||
if out_dir != coco_path:
|
||||
shutil.copytree(osp.join(coco_path, 'images'), out_img_dir)
|
||||
@ -237,22 +238,22 @@ def main():
|
||||
len(train_list), len(test_list))
|
||||
|
||||
if args.nproc > 1:
|
||||
mmcv.track_parallel_progress(
|
||||
track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True),
|
||||
train_list,
|
||||
nproc=nproc)
|
||||
mmcv.track_parallel_progress(
|
||||
track_parallel_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False),
|
||||
test_list,
|
||||
nproc=nproc)
|
||||
else:
|
||||
mmcv.track_progress(
|
||||
track_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=True),
|
||||
train_list)
|
||||
mmcv.track_progress(
|
||||
track_progress(
|
||||
partial(
|
||||
convert_to_trainID, out_mask_dir=out_mask_dir, is_train=False),
|
||||
test_list)
|
||||
|
@ -7,6 +7,7 @@ import zipfile
|
||||
|
||||
import cv2
|
||||
import mmcv
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -32,13 +33,13 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
print('Extracting training.zip...')
|
||||
|
@ -6,6 +6,7 @@ import tempfile
|
||||
import zipfile
|
||||
|
||||
import mmcv
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
HRF_LEN = 15
|
||||
TRAINING_LEN = 5
|
||||
@ -47,13 +48,13 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
|
||||
print('Generating images...')
|
||||
for now_path in images_path:
|
||||
|
@ -9,6 +9,7 @@ import zipfile
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import ProgressBar, mkdir_or_exist
|
||||
from PIL import Image
|
||||
|
||||
iSAID_palette = \
|
||||
@ -178,13 +179,13 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'test'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'test'))
|
||||
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'test'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'test'))
|
||||
|
||||
assert os.path.exists(os.path.join(dataset_path, 'train')), \
|
||||
'train is not in {}'.format(dataset_path)
|
||||
@ -207,7 +208,7 @@ def main():
|
||||
src_path_list = glob.glob(
|
||||
os.path.join(tmp_dir, dataset_mode, 'img', 'images', '*.png'))
|
||||
|
||||
src_prog_bar = mmcv.ProgressBar(len(src_path_list))
|
||||
src_prog_bar = ProgressBar(len(src_path_list))
|
||||
for i, img_path in enumerate(src_path_list):
|
||||
if dataset_mode != 'test':
|
||||
slide_crop_image(img_path, out_dir, dataset_mode, patch_H,
|
||||
@ -230,7 +231,7 @@ def main():
|
||||
lab_path_list = glob.glob(
|
||||
os.path.join(tmp_dir, dataset_mode, 'lab', 'images',
|
||||
'*.png'))
|
||||
lab_prog_bar = mmcv.ProgressBar(len(lab_path_list))
|
||||
lab_prog_bar = ProgressBar(len(lab_path_list))
|
||||
for i, lab_path in enumerate(lab_path_list):
|
||||
slide_crop_label(lab_path, out_dir, dataset_mode, patch_H,
|
||||
patch_W, overlap)
|
||||
|
@ -6,7 +6,7 @@ import shutil
|
||||
import tempfile
|
||||
import zipfile
|
||||
|
||||
import mmcv
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -28,14 +28,14 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'test'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'test'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
|
||||
assert 'Train.zip' in os.listdir(dataset_path), \
|
||||
'Train.zip is not in {}'.format(dataset_path)
|
||||
|
@ -3,9 +3,9 @@ import argparse
|
||||
import os.path as osp
|
||||
from functools import partial
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from detail import Detail
|
||||
from mmengine.utils import mkdir_or_exist, track_progress
|
||||
from PIL import Image
|
||||
|
||||
_mapping = np.sort(
|
||||
@ -53,7 +53,7 @@ def main():
|
||||
else:
|
||||
out_dir = args.out_dir
|
||||
json_path = args.json_path
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(out_dir)
|
||||
img_dir = osp.join(devkit_path, 'VOC2010', 'JPEGImages')
|
||||
|
||||
train_detail = Detail(json_path, img_dir, 'train')
|
||||
@ -62,10 +62,10 @@ def main():
|
||||
val_detail = Detail(json_path, img_dir, 'val')
|
||||
val_ids = val_detail.getImgs()
|
||||
|
||||
mmcv.mkdir_or_exist(
|
||||
mkdir_or_exist(
|
||||
osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext'))
|
||||
|
||||
train_list = mmcv.track_progress(
|
||||
train_list = track_progress(
|
||||
partial(generate_labels, detail=train_detail, out_dir=out_dir),
|
||||
train_ids)
|
||||
with open(
|
||||
@ -73,7 +73,7 @@ def main():
|
||||
'train.txt'), 'w') as f:
|
||||
f.writelines(line + '\n' for line in sorted(train_list))
|
||||
|
||||
val_list = mmcv.track_progress(
|
||||
val_list = track_progress(
|
||||
partial(generate_labels, detail=val_detail, out_dir=out_dir), val_ids)
|
||||
with open(
|
||||
osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext',
|
||||
|
@ -9,6 +9,7 @@ import zipfile
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import ProgressBar, mkdir_or_exist
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -118,10 +119,10 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
|
||||
zipp_list = glob.glob(os.path.join(dataset_path, '*.zip'))
|
||||
print('Find the data', zipp_list)
|
||||
@ -135,7 +136,7 @@ def main():
|
||||
sub_tmp_dir = os.path.join(tmp_dir, os.listdir(tmp_dir)[0])
|
||||
src_path_list = glob.glob(os.path.join(sub_tmp_dir, '*.tif'))
|
||||
|
||||
prog_bar = mmcv.ProgressBar(len(src_path_list))
|
||||
prog_bar = ProgressBar(len(src_path_list))
|
||||
for i, src_path in enumerate(src_path_list):
|
||||
idx_i, idx_j = osp.basename(src_path).split('_')[2:4]
|
||||
data_type = 'train' if f'{idx_i}_{idx_j}' in splits[
|
||||
|
@ -7,6 +7,7 @@ import tarfile
|
||||
import tempfile
|
||||
|
||||
import mmcv
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
STARE_LEN = 20
|
||||
TRAINING_LEN = 10
|
||||
@ -42,17 +43,17 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(osp.join(out_dir, 'images'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
|
||||
print('Extracting stare-images.tar...')
|
||||
with tarfile.open(image_path) as f:
|
||||
@ -86,8 +87,8 @@ def main():
|
||||
print('Removing the temporary files...')
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
|
||||
print('Extracting labels-ah.tar...')
|
||||
with tarfile.open(labels_ah) as f:
|
||||
@ -125,8 +126,8 @@ def main():
|
||||
print('Removing the temporary files...')
|
||||
|
||||
with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'gz'))
|
||||
mkdir_or_exist(osp.join(tmp_dir, 'files'))
|
||||
|
||||
print('Extracting labels-vk.tar...')
|
||||
with tarfile.open(labels_vk) as f:
|
||||
|
@ -9,6 +9,7 @@ import zipfile
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import ProgressBar, mkdir_or_exist
|
||||
|
||||
|
||||
def parse_args():
|
||||
@ -111,10 +112,10 @@ def main():
|
||||
out_dir = args.out_dir
|
||||
|
||||
print('Making directories...')
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mmcv.mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'img_dir', 'val'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'train'))
|
||||
mkdir_or_exist(osp.join(out_dir, 'ann_dir', 'val'))
|
||||
|
||||
zipp_list = glob.glob(os.path.join(dataset_path, '*.zip'))
|
||||
print('Find the data', zipp_list)
|
||||
@ -133,7 +134,7 @@ def main():
|
||||
for area_ann in src_path_list:
|
||||
if 'area9' in area_ann:
|
||||
src_path_list.remove(area_ann)
|
||||
prog_bar = mmcv.ProgressBar(len(src_path_list))
|
||||
prog_bar = ProgressBar(len(src_path_list))
|
||||
for i, src_path in enumerate(src_path_list):
|
||||
area_idx = osp.basename(src_path).split('_')[3].strip('.tif')
|
||||
data_type = 'train' if area_idx in splits['train'] else 'val'
|
||||
|
@ -3,8 +3,8 @@ import argparse
|
||||
import os.path as osp
|
||||
from functools import partial
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
from mmengine.utils import mkdir_or_exist, scandir, track_parallel_progress
|
||||
from PIL import Image
|
||||
from scipy.io import loadmat
|
||||
|
||||
@ -43,12 +43,12 @@ def main():
|
||||
out_dir = osp.join(devkit_path, 'VOC2012', 'SegmentationClassAug')
|
||||
else:
|
||||
out_dir = args.out_dir
|
||||
mmcv.mkdir_or_exist(out_dir)
|
||||
mkdir_or_exist(out_dir)
|
||||
in_dir = osp.join(aug_path, 'dataset', 'cls')
|
||||
|
||||
mmcv.track_parallel_progress(
|
||||
track_parallel_progress(
|
||||
partial(convert_mat, in_dir=in_dir, out_dir=out_dir),
|
||||
list(mmcv.scandir(in_dir, suffix='.mat')),
|
||||
list(scandir(in_dir, suffix='.mat')),
|
||||
nproc=nproc)
|
||||
|
||||
full_aug_list = []
|
||||
|
@ -1,12 +1,12 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import argparse
|
||||
|
||||
import mmcv
|
||||
import numpy as np
|
||||
import torch
|
||||
import torch._C
|
||||
import torch.serialization
|
||||
from mmcv.runner import load_checkpoint
|
||||
from mmengine import Config
|
||||
from mmengine.runner import load_checkpoint
|
||||
from torch import nn
|
||||
|
||||
from mmseg.models import build_segmentor
|
||||
@ -163,7 +163,7 @@ if __name__ == '__main__':
|
||||
else:
|
||||
raise ValueError('invalid input shape')
|
||||
|
||||
cfg = mmcv.Config.fromfile(args.config)
|
||||
cfg = Config.fromfile(args.config)
|
||||
cfg.model.pretrained = None
|
||||
|
||||
# build the model and load checkpoint
|
||||
|
@ -2,8 +2,8 @@
|
||||
import argparse
|
||||
import os.path as osp
|
||||
|
||||
import mmcv
|
||||
from mmcv import Config, DictAction
|
||||
from mmengine import Config, DictAction
|
||||
from mmengine.utils import ProgressBar
|
||||
|
||||
from mmseg.datasets import DATASETS
|
||||
from mmseg.registry import VISUALIZERS
|
||||
@ -52,7 +52,7 @@ def main():
|
||||
visualizer = VISUALIZERS.build(cfg.visualizer)
|
||||
visualizer.dataset_meta = dataset.METAINFO
|
||||
|
||||
progress_bar = mmcv.ProgressBar(len(dataset))
|
||||
progress_bar = ProgressBar(len(dataset))
|
||||
for item in dataset:
|
||||
img = item['inputs'].permute(1, 2, 0).numpy()
|
||||
data_sample = item['data_sample'].numpy()
|
||||
|
@ -2,7 +2,7 @@
|
||||
import argparse
|
||||
import warnings
|
||||
|
||||
from mmcv import Config, DictAction
|
||||
from mmengine import Config, DictAction
|
||||
|
||||
from mmseg.apis import init_model
|
||||
|
||||
|
@ -3,7 +3,8 @@ from argparse import ArgumentParser, Namespace
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
|
||||
import mmcv
|
||||
from mmengine import Config
|
||||
from mmengine.utils import mkdir_or_exist
|
||||
|
||||
try:
|
||||
from model_archiver.model_packaging import package_model
|
||||
@ -43,9 +44,9 @@ def mmseg2torchserve(
|
||||
If True, if there is an existing `{model_name}.mar`
|
||||
file under `output_folder` it will be overwritten.
|
||||
"""
|
||||
mmcv.mkdir_or_exist(output_folder)
|
||||
mkdir_or_exist(output_folder)
|
||||
|
||||
config = mmcv.Config.fromfile(config_file)
|
||||
config = Config.fromfile(config_file)
|
||||
|
||||
with TemporaryDirectory() as tmpdir:
|
||||
config.dump(f'{tmpdir}/config.py')
|
||||
|
@ -5,7 +5,7 @@ import os
|
||||
import cv2
|
||||
import mmcv
|
||||
import torch
|
||||
from mmcv.cnn.utils.sync_bn import revert_sync_batchnorm
|
||||
from mmengine.model.utils import revert_sync_batchnorm
|
||||
from ts.torch_handler.base_handler import BaseHandler
|
||||
|
||||
from mmseg.apis import inference_model, init_model
|
||||
|
Loading…
x
Reference in New Issue
Block a user