diff --git a/demo/batch_image_demo.py b/demo/batch_image_demo.py index 245405fc..20a37d11 100644 --- a/demo/batch_image_demo.py +++ b/demo/batch_image_demo.py @@ -2,8 +2,8 @@ from argparse import ArgumentParser from pathlib import Path import mmcv - from mmdet.apis import init_detector + from mmocr.apis.inference import model_inference from mmocr.datasets import build_dataset # noqa: F401 from mmocr.models import build_detector # noqa: F401 diff --git a/demo/image_demo.py b/demo/image_demo.py index 2db1aea7..2e6d33f7 100644 --- a/demo/image_demo.py +++ b/demo/image_demo.py @@ -1,8 +1,8 @@ from argparse import ArgumentParser import mmcv - from mmdet.apis import init_detector + from mmocr.apis.inference import model_inference from mmocr.datasets import build_dataset # noqa: F401 from mmocr.models import build_detector # noqa: F401 diff --git a/demo/ner_demo.py b/demo/ner_demo.py index a7204935..fb3998b6 100755 --- a/demo/ner_demo.py +++ b/demo/ner_demo.py @@ -1,6 +1,7 @@ from argparse import ArgumentParser from mmdet.apis import init_detector + from mmocr.apis.inference import text_model_inference from mmocr.datasets import build_dataset # NOQA diff --git a/demo/ocr_image_demo.py b/demo/ocr_image_demo.py index 742c8253..82e6aca9 100644 --- a/demo/ocr_image_demo.py +++ b/demo/ocr_image_demo.py @@ -1,8 +1,8 @@ from argparse import ArgumentParser import mmcv - from mmdet.apis import init_detector + from mmocr.apis.inference import model_inference from mmocr.core.visualize import det_recog_show_result from mmocr.datasets.pipelines.crop import crop_img diff --git a/demo/webcam_demo.py b/demo/webcam_demo.py index 45e23c5b..f4c7cf2a 100644 --- a/demo/webcam_demo.py +++ b/demo/webcam_demo.py @@ -2,8 +2,8 @@ import argparse import cv2 import torch - from mmdet.apis import init_detector + from mmocr.apis import model_inference from mmocr.datasets import build_dataset # noqa: F401 from mmocr.models import build_detector # noqa: F401 diff --git a/mmocr/apis/inference.py b/mmocr/apis/inference.py index 3816ea72..e9e5b777 100644 --- a/mmocr/apis/inference.py +++ b/mmocr/apis/inference.py @@ -2,7 +2,6 @@ import numpy as np import torch from mmcv.ops import RoIPool from mmcv.parallel import collate, scatter - from mmdet.datasets import replace_ImageToTensor from mmdet.datasets.pipelines import Compose diff --git a/mmocr/apis/train.py b/mmocr/apis/train.py index 78c1e170..e3bb9cc4 100644 --- a/mmocr/apis/train.py +++ b/mmocr/apis/train.py @@ -6,10 +6,10 @@ from mmcv.runner import (HOOKS, DistSamplerSeedHook, EpochBasedRunner, Fp16OptimizerHook, OptimizerHook, build_optimizer, build_runner) from mmcv.utils import build_from_cfg - from mmdet.core import DistEvalHook, EvalHook from mmdet.datasets import (build_dataloader, build_dataset, replace_ImageToTensor) + from mmocr.utils import get_root_logger diff --git a/mmocr/datasets/__init__.py b/mmocr/datasets/__init__.py index 881bccb2..b4bad7b4 100644 --- a/mmocr/datasets/__init__.py +++ b/mmocr/datasets/__init__.py @@ -1,4 +1,5 @@ from mmdet.datasets.builder import DATASETS, build_dataloader, build_dataset + from . import utils from .base_dataset import BaseDataset from .icdar_dataset import IcdarDataset diff --git a/mmocr/datasets/base_dataset.py b/mmocr/datasets/base_dataset.py index f5c8f9d8..df07f26b 100644 --- a/mmocr/datasets/base_dataset.py +++ b/mmocr/datasets/base_dataset.py @@ -1,9 +1,9 @@ import numpy as np from mmcv.utils import print_log -from torch.utils.data import Dataset - from mmdet.datasets.builder import DATASETS from mmdet.datasets.pipelines import Compose +from torch.utils.data import Dataset + from mmocr.datasets.builder import build_loader diff --git a/mmocr/datasets/icdar_dataset.py b/mmocr/datasets/icdar_dataset.py index 34a97584..d9c81da2 100644 --- a/mmocr/datasets/icdar_dataset.py +++ b/mmocr/datasets/icdar_dataset.py @@ -1,9 +1,9 @@ import numpy as np +from mmdet.datasets.builder import DATASETS +from mmdet.datasets.coco import CocoDataset from pycocotools.coco import COCO import mmocr.utils as utils -from mmdet.datasets.builder import DATASETS -from mmdet.datasets.coco import CocoDataset from mmocr.core.evaluation.hmean import eval_hmean diff --git a/mmocr/datasets/kie_dataset.py b/mmocr/datasets/kie_dataset.py index 6e6c61d7..aa39f82a 100644 --- a/mmocr/datasets/kie_dataset.py +++ b/mmocr/datasets/kie_dataset.py @@ -3,8 +3,8 @@ from os import path as osp import numpy as np import torch - from mmdet.datasets.builder import DATASETS + from mmocr.core import compute_f1_score from mmocr.datasets.base_dataset import BaseDataset from mmocr.datasets.pipelines import sort_vertex8 diff --git a/mmocr/datasets/ner_dataset.py b/mmocr/datasets/ner_dataset.py index fd2fa146..7e0731fa 100644 --- a/mmocr/datasets/ner_dataset.py +++ b/mmocr/datasets/ner_dataset.py @@ -1,4 +1,5 @@ from mmdet.datasets.builder import DATASETS + from mmocr.core.evaluation.ner_metric import eval_ner_f1 from mmocr.datasets.base_dataset import BaseDataset diff --git a/mmocr/datasets/ocr_dataset.py b/mmocr/datasets/ocr_dataset.py index 4ec6d962..984fdf58 100644 --- a/mmocr/datasets/ocr_dataset.py +++ b/mmocr/datasets/ocr_dataset.py @@ -1,4 +1,5 @@ from mmdet.datasets.builder import DATASETS + from mmocr.core.evaluation.ocr_metric import eval_ocr_metric from mmocr.datasets.base_dataset import BaseDataset diff --git a/mmocr/datasets/ocr_seg_dataset.py b/mmocr/datasets/ocr_seg_dataset.py index 638de163..2f985dc6 100644 --- a/mmocr/datasets/ocr_seg_dataset.py +++ b/mmocr/datasets/ocr_seg_dataset.py @@ -1,5 +1,6 @@ -import mmocr.utils as utils from mmdet.datasets.builder import DATASETS + +import mmocr.utils as utils from mmocr.datasets.ocr_dataset import OCRDataset diff --git a/mmocr/datasets/pipelines/custom_format_bundle.py b/mmocr/datasets/pipelines/custom_format_bundle.py index 276cde69..dcfca2f8 100644 --- a/mmocr/datasets/pipelines/custom_format_bundle.py +++ b/mmocr/datasets/pipelines/custom_format_bundle.py @@ -1,8 +1,8 @@ import numpy as np from mmcv.parallel import DataContainer as DC - from mmdet.datasets.builder import PIPELINES from mmdet.datasets.pipelines.formating import DefaultFormatBundle + from mmocr.core.visualize import overlay_mask_img, show_feature diff --git a/mmocr/datasets/pipelines/dbnet_transforms.py b/mmocr/datasets/pipelines/dbnet_transforms.py index 3be9ed8e..ab6db67e 100644 --- a/mmocr/datasets/pipelines/dbnet_transforms.py +++ b/mmocr/datasets/pipelines/dbnet_transforms.py @@ -2,7 +2,6 @@ import imgaug import imgaug.augmenters as iaa import mmcv import numpy as np - from mmdet.core.mask import PolygonMasks from mmdet.datasets.builder import PIPELINES diff --git a/mmocr/datasets/pipelines/kie_transforms.py b/mmocr/datasets/pipelines/kie_transforms.py index 847250fe..96cfbd4a 100644 --- a/mmocr/datasets/pipelines/kie_transforms.py +++ b/mmocr/datasets/pipelines/kie_transforms.py @@ -1,7 +1,6 @@ import numpy as np from mmcv import rescale_size from mmcv.parallel import DataContainer as DC - from mmdet.datasets.builder import PIPELINES from mmdet.datasets.pipelines.formating import DefaultFormatBundle, to_tensor diff --git a/mmocr/datasets/pipelines/loading.py b/mmocr/datasets/pipelines/loading.py index d931edd1..05768a1d 100644 --- a/mmocr/datasets/pipelines/loading.py +++ b/mmocr/datasets/pipelines/loading.py @@ -1,6 +1,5 @@ import mmcv import numpy as np - from mmdet.core import BitmapMasks, PolygonMasks from mmdet.datasets.builder import PIPELINES from mmdet.datasets.pipelines.loading import LoadAnnotations, LoadImageFromFile diff --git a/mmocr/datasets/pipelines/ner_transforms.py b/mmocr/datasets/pipelines/ner_transforms.py index afcaf53a..32f06b7a 100644 --- a/mmocr/datasets/pipelines/ner_transforms.py +++ b/mmocr/datasets/pipelines/ner_transforms.py @@ -1,6 +1,6 @@ import torch - from mmdet.datasets.builder import PIPELINES + from mmocr.models.builder import build_convertor diff --git a/mmocr/datasets/pipelines/ocr_seg_targets.py b/mmocr/datasets/pipelines/ocr_seg_targets.py index cbd9b869..10fa394c 100644 --- a/mmocr/datasets/pipelines/ocr_seg_targets.py +++ b/mmocr/datasets/pipelines/ocr_seg_targets.py @@ -1,9 +1,9 @@ import cv2 import numpy as np - -import mmocr.utils.check_argument as check_argument from mmdet.core import BitmapMasks from mmdet.datasets.builder import PIPELINES + +import mmocr.utils.check_argument as check_argument from mmocr.models.builder import build_convertor diff --git a/mmocr/datasets/pipelines/ocr_transforms.py b/mmocr/datasets/pipelines/ocr_transforms.py index 36f785a0..de3d2648 100644 --- a/mmocr/datasets/pipelines/ocr_transforms.py +++ b/mmocr/datasets/pipelines/ocr_transforms.py @@ -5,12 +5,12 @@ import numpy as np import torch import torchvision.transforms.functional as TF from mmcv.runner.dist_utils import get_dist_info +from mmdet.datasets.builder import PIPELINES from PIL import Image from shapely.geometry import Polygon from shapely.geometry import box as shapely_box import mmocr.utils as utils -from mmdet.datasets.builder import PIPELINES from mmocr.datasets.pipelines.crop import warp_img diff --git a/mmocr/datasets/pipelines/test_time_aug.py b/mmocr/datasets/pipelines/test_time_aug.py index 5c8c1a60..79dca554 100644 --- a/mmocr/datasets/pipelines/test_time_aug.py +++ b/mmocr/datasets/pipelines/test_time_aug.py @@ -1,6 +1,5 @@ import mmcv import numpy as np - from mmdet.datasets.builder import PIPELINES from mmdet.datasets.pipelines.compose import Compose diff --git a/mmocr/datasets/pipelines/textdet_targets/dbnet_targets.py b/mmocr/datasets/pipelines/textdet_targets/dbnet_targets.py index 1e21cfc0..193a20ac 100644 --- a/mmocr/datasets/pipelines/textdet_targets/dbnet_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/dbnet_targets.py @@ -1,10 +1,10 @@ import cv2 import numpy as np import pyclipper -from shapely.geometry import Polygon - from mmdet.core import BitmapMasks from mmdet.datasets.builder import PIPELINES +from shapely.geometry import Polygon + from . import BaseTextDetTargets diff --git a/mmocr/datasets/pipelines/textdet_targets/drrg_targets.py b/mmocr/datasets/pipelines/textdet_targets/drrg_targets.py index 1f48b1bf..c4255ee7 100644 --- a/mmocr/datasets/pipelines/textdet_targets/drrg_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/drrg_targets.py @@ -1,11 +1,11 @@ import cv2 import numpy as np from lanms import merge_quadrangle_n9 as la_nms +from mmdet.core import BitmapMasks +from mmdet.datasets.builder import PIPELINES from numpy.linalg import norm import mmocr.utils.check_argument as check_argument -from mmdet.core import BitmapMasks -from mmdet.datasets.builder import PIPELINES from .textsnake_targets import TextSnakeTargets diff --git a/mmocr/datasets/pipelines/textdet_targets/fcenet_targets.py b/mmocr/datasets/pipelines/textdet_targets/fcenet_targets.py index 3d774312..fc9e8677 100644 --- a/mmocr/datasets/pipelines/textdet_targets/fcenet_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/fcenet_targets.py @@ -1,10 +1,10 @@ import cv2 import numpy as np +from mmdet.datasets.builder import PIPELINES from numpy.fft import fft from numpy.linalg import norm import mmocr.utils.check_argument as check_argument -from mmdet.datasets.builder import PIPELINES from .textsnake_targets import TextSnakeTargets diff --git a/mmocr/datasets/pipelines/textdet_targets/panet_targets.py b/mmocr/datasets/pipelines/textdet_targets/panet_targets.py index 11b85283..cd54c004 100644 --- a/mmocr/datasets/pipelines/textdet_targets/panet_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/panet_targets.py @@ -1,5 +1,6 @@ from mmdet.core import BitmapMasks from mmdet.datasets.builder import PIPELINES + from . import BaseTextDetTargets diff --git a/mmocr/datasets/pipelines/textdet_targets/psenet_targets.py b/mmocr/datasets/pipelines/textdet_targets/psenet_targets.py index d78b7fd7..35e831f3 100644 --- a/mmocr/datasets/pipelines/textdet_targets/psenet_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/psenet_targets.py @@ -1,4 +1,5 @@ from mmdet.datasets.builder import PIPELINES + from . import PANetTargets diff --git a/mmocr/datasets/pipelines/textdet_targets/textsnake_targets.py b/mmocr/datasets/pipelines/textdet_targets/textsnake_targets.py index 8d10216e..7b43e979 100644 --- a/mmocr/datasets/pipelines/textdet_targets/textsnake_targets.py +++ b/mmocr/datasets/pipelines/textdet_targets/textsnake_targets.py @@ -1,10 +1,10 @@ import cv2 import numpy as np +from mmdet.core import BitmapMasks +from mmdet.datasets.builder import PIPELINES from numpy.linalg import norm import mmocr.utils.check_argument as check_argument -from mmdet.core import BitmapMasks -from mmdet.datasets.builder import PIPELINES from . import BaseTextDetTargets diff --git a/mmocr/datasets/pipelines/transforms.py b/mmocr/datasets/pipelines/transforms.py index 59e61af0..06c43bc4 100644 --- a/mmocr/datasets/pipelines/transforms.py +++ b/mmocr/datasets/pipelines/transforms.py @@ -5,12 +5,12 @@ import mmcv import numpy as np import Polygon as plg import torchvision.transforms as transforms -from PIL import Image - -import mmocr.core.evaluation.utils as eval_utils from mmdet.core import BitmapMasks, PolygonMasks from mmdet.datasets.builder import PIPELINES from mmdet.datasets.pipelines.transforms import Resize +from PIL import Image + +import mmocr.core.evaluation.utils as eval_utils from mmocr.utils import check_argument diff --git a/mmocr/datasets/text_det_dataset.py b/mmocr/datasets/text_det_dataset.py index 65a2d9d9..d428a373 100644 --- a/mmocr/datasets/text_det_dataset.py +++ b/mmocr/datasets/text_det_dataset.py @@ -1,6 +1,6 @@ import numpy as np - from mmdet.datasets.builder import DATASETS + from mmocr.core.evaluation.hmean import eval_hmean from mmocr.datasets.base_dataset import BaseDataset diff --git a/mmocr/models/__init__.py b/mmocr/models/__init__.py index 4c3586a6..5047b7b4 100644 --- a/mmocr/models/__init__.py +++ b/mmocr/models/__init__.py @@ -1,5 +1,6 @@ from mmdet.models.builder import (BACKBONES, DETECTORS, HEADS, LOSSES, NECKS, build_backbone, build_detector, build_loss) + from . import common, kie, textdet, textrecog from .builder import (CONVERTORS, DECODERS, ENCODERS, PREPROCESSOR, build_convertor, build_decoder, build_encoder, diff --git a/mmocr/models/common/backbones/unet.py b/mmocr/models/common/backbones/unet.py index b2525e82..a47c8929 100644 --- a/mmocr/models/common/backbones/unet.py +++ b/mmocr/models/common/backbones/unet.py @@ -6,8 +6,8 @@ from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer, kaiming_init) from mmcv.runner import load_checkpoint from mmcv.utils.parrots_wrapper import _BatchNorm - from mmdet.models.builder import BACKBONES + from mmocr.utils import get_root_logger diff --git a/mmocr/models/common/losses/dice_loss.py b/mmocr/models/common/losses/dice_loss.py index 0dfdf009..81b917f4 100644 --- a/mmocr/models/common/losses/dice_loss.py +++ b/mmocr/models/common/losses/dice_loss.py @@ -1,6 +1,5 @@ import torch import torch.nn as nn - from mmdet.models.builder import LOSSES diff --git a/mmocr/models/kie/extractors/sdmgr.py b/mmocr/models/kie/extractors/sdmgr.py index 9a754661..7c3a36e6 100644 --- a/mmocr/models/kie/extractors/sdmgr.py +++ b/mmocr/models/kie/extractors/sdmgr.py @@ -1,12 +1,12 @@ import warnings import mmcv -from torch import nn -from torch.nn import functional as F - from mmdet.core import bbox2roi from mmdet.models.builder import DETECTORS, build_roi_extractor from mmdet.models.detectors import SingleStageDetector +from torch import nn +from torch.nn import functional as F + from mmocr.core import imshow_edge_node from mmocr.utils import list_from_file diff --git a/mmocr/models/kie/heads/sdmgr_head.py b/mmocr/models/kie/heads/sdmgr_head.py index 3fc0ba36..9053659e 100644 --- a/mmocr/models/kie/heads/sdmgr_head.py +++ b/mmocr/models/kie/heads/sdmgr_head.py @@ -1,10 +1,9 @@ import torch from mmcv.cnn import normal_init +from mmdet.models.builder import HEADS, build_loss from torch import nn from torch.nn import functional as F -from mmdet.models.builder import HEADS, build_loss - @HEADS.register_module() class SDMGRHead(nn.Module): diff --git a/mmocr/models/kie/losses/sdmgr_loss.py b/mmocr/models/kie/losses/sdmgr_loss.py index c1eab5f4..7ccc47d5 100644 --- a/mmocr/models/kie/losses/sdmgr_loss.py +++ b/mmocr/models/kie/losses/sdmgr_loss.py @@ -1,8 +1,7 @@ import torch -from torch import nn - from mmdet.models.builder import LOSSES from mmdet.models.losses import accuracy +from torch import nn @LOSSES.register_module() diff --git a/mmocr/models/ner/classifiers/ner_classifier.py b/mmocr/models/ner/classifiers/ner_classifier.py index d2de90f7..3850b771 100644 --- a/mmocr/models/ner/classifiers/ner_classifier.py +++ b/mmocr/models/ner/classifiers/ner_classifier.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS, build_loss + from mmocr.models.builder import build_convertor, build_decoder, build_encoder from mmocr.models.textrecog.recognizer.base import BaseRecognizer diff --git a/mmocr/models/ner/encoders/bert_encoder.py b/mmocr/models/ner/encoders/bert_encoder.py index fb742f08..b35677cf 100644 --- a/mmocr/models/ner/encoders/bert_encoder.py +++ b/mmocr/models/ner/encoders/bert_encoder.py @@ -1,8 +1,8 @@ import torch.nn as nn from mmcv.cnn import uniform_init, xavier_init from mmcv.runner import load_checkpoint - from mmdet.utils import get_root_logger + from mmocr.models.builder import ENCODERS from mmocr.models.ner.utils.bert import BertModel diff --git a/mmocr/models/ner/losses/masked_cross_entropy_loss.py b/mmocr/models/ner/losses/masked_cross_entropy_loss.py index b925d049..62821477 100644 --- a/mmocr/models/ner/losses/masked_cross_entropy_loss.py +++ b/mmocr/models/ner/losses/masked_cross_entropy_loss.py @@ -1,8 +1,7 @@ +from mmdet.models.builder import LOSSES from torch import nn from torch.nn import CrossEntropyLoss -from mmdet.models.builder import LOSSES - @LOSSES.register_module() class MaskedCrossEntropyLoss(nn.Module): diff --git a/mmocr/models/ner/losses/masked_focal_loss.py b/mmocr/models/ner/losses/masked_focal_loss.py index c5147778..4b2ee170 100644 --- a/mmocr/models/ner/losses/masked_focal_loss.py +++ b/mmocr/models/ner/losses/masked_focal_loss.py @@ -1,6 +1,6 @@ +from mmdet.models.builder import LOSSES from torch import nn -from mmdet.models.builder import LOSSES from mmocr.models.common.losses.focal_loss import FocalLoss diff --git a/mmocr/models/textdet/dense_heads/db_head.py b/mmocr/models/textdet/dense_heads/db_head.py index f32b296c..90f48c15 100644 --- a/mmocr/models/textdet/dense_heads/db_head.py +++ b/mmocr/models/textdet/dense_heads/db_head.py @@ -1,7 +1,7 @@ import torch import torch.nn as nn - from mmdet.models.builder import HEADS, build_loss + from .head_mixin import HeadMixin diff --git a/mmocr/models/textdet/dense_heads/drrg_head.py b/mmocr/models/textdet/dense_heads/drrg_head.py index 5abe8f96..8bbf9b3d 100644 --- a/mmocr/models/textdet/dense_heads/drrg_head.py +++ b/mmocr/models/textdet/dense_heads/drrg_head.py @@ -3,8 +3,8 @@ import torch import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import normal_init - from mmdet.models.builder import HEADS, build_loss + from mmocr.models.textdet.modules import GCN, LocalGraphs, ProposalLocalGraphs from mmocr.models.textdet.postprocess import decode from mmocr.utils import check_argument diff --git a/mmocr/models/textdet/dense_heads/fce_head.py b/mmocr/models/textdet/dense_heads/fce_head.py index b178fb4f..929f785a 100644 --- a/mmocr/models/textdet/dense_heads/fce_head.py +++ b/mmocr/models/textdet/dense_heads/fce_head.py @@ -1,8 +1,8 @@ import torch.nn as nn from mmcv.cnn import normal_init - from mmdet.core import multi_apply from mmdet.models.builder import HEADS, build_loss + from mmocr.models.textdet.postprocess import decode from ..postprocess.wrapper import poly_nms from .head_mixin import HeadMixin diff --git a/mmocr/models/textdet/dense_heads/head_mixin.py b/mmocr/models/textdet/dense_heads/head_mixin.py index 567d334d..6ede6221 100644 --- a/mmocr/models/textdet/dense_heads/head_mixin.py +++ b/mmocr/models/textdet/dense_heads/head_mixin.py @@ -1,6 +1,6 @@ import numpy as np - from mmdet.models.builder import HEADS + from mmocr.models.textdet.postprocess import decode from mmocr.utils import check_argument diff --git a/mmocr/models/textdet/dense_heads/pan_head.py b/mmocr/models/textdet/dense_heads/pan_head.py index 08cc7cff..1f403128 100644 --- a/mmocr/models/textdet/dense_heads/pan_head.py +++ b/mmocr/models/textdet/dense_heads/pan_head.py @@ -2,8 +2,8 @@ import numpy as np import torch import torch.nn as nn from mmcv.cnn import normal_init - from mmdet.models.builder import HEADS, build_loss + from mmocr.utils import check_argument from . import HeadMixin diff --git a/mmocr/models/textdet/dense_heads/pse_head.py b/mmocr/models/textdet/dense_heads/pse_head.py index db2a9925..f88d17ea 100644 --- a/mmocr/models/textdet/dense_heads/pse_head.py +++ b/mmocr/models/textdet/dense_heads/pse_head.py @@ -1,4 +1,5 @@ from mmdet.models.builder import HEADS + from . import PANHead diff --git a/mmocr/models/textdet/dense_heads/textsnake_head.py b/mmocr/models/textdet/dense_heads/textsnake_head.py index 1645bba7..5e158c8b 100644 --- a/mmocr/models/textdet/dense_heads/textsnake_head.py +++ b/mmocr/models/textdet/dense_heads/textsnake_head.py @@ -1,7 +1,7 @@ import torch.nn as nn from mmcv.cnn import normal_init - from mmdet.models.builder import HEADS, build_loss + from . import HeadMixin diff --git a/mmocr/models/textdet/detectors/dbnet.py b/mmocr/models/textdet/detectors/dbnet.py index 4b3c33d4..c7c55f63 100644 --- a/mmocr/models/textdet/detectors/dbnet.py +++ b/mmocr/models/textdet/detectors/dbnet.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from mmocr.models.textdet.detectors.single_stage_text_detector import \ SingleStageTextDetector from mmocr.models.textdet.detectors.text_detector_mixin import \ diff --git a/mmocr/models/textdet/detectors/drrg.py b/mmocr/models/textdet/detectors/drrg.py index e0dfef70..21ed64bd 100644 --- a/mmocr/models/textdet/detectors/drrg.py +++ b/mmocr/models/textdet/detectors/drrg.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from mmocr.models.textdet.detectors.single_stage_text_detector import \ SingleStageTextDetector from mmocr.models.textdet.detectors.text_detector_mixin import \ diff --git a/mmocr/models/textdet/detectors/fcenet.py b/mmocr/models/textdet/detectors/fcenet.py index 597622ac..a0feb8f9 100644 --- a/mmocr/models/textdet/detectors/fcenet.py +++ b/mmocr/models/textdet/detectors/fcenet.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from .single_stage_text_detector import SingleStageTextDetector from .text_detector_mixin import TextDetectorMixin diff --git a/mmocr/models/textdet/detectors/ocr_mask_rcnn.py b/mmocr/models/textdet/detectors/ocr_mask_rcnn.py index a9ce9cc8..f3f05be2 100644 --- a/mmocr/models/textdet/detectors/ocr_mask_rcnn.py +++ b/mmocr/models/textdet/detectors/ocr_mask_rcnn.py @@ -1,5 +1,6 @@ from mmdet.models.builder import DETECTORS from mmdet.models.detectors import MaskRCNN + from mmocr.models.textdet.detectors.text_detector_mixin import \ TextDetectorMixin diff --git a/mmocr/models/textdet/detectors/panet.py b/mmocr/models/textdet/detectors/panet.py index befa52c8..23b815ca 100644 --- a/mmocr/models/textdet/detectors/panet.py +++ b/mmocr/models/textdet/detectors/panet.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from mmocr.models.textdet.detectors.single_stage_text_detector import \ SingleStageTextDetector from mmocr.models.textdet.detectors.text_detector_mixin import \ diff --git a/mmocr/models/textdet/detectors/psenet.py b/mmocr/models/textdet/detectors/psenet.py index 7dccad4e..0b6348af 100644 --- a/mmocr/models/textdet/detectors/psenet.py +++ b/mmocr/models/textdet/detectors/psenet.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from mmocr.models.textdet.detectors.single_stage_text_detector import \ SingleStageTextDetector from mmocr.models.textdet.detectors.text_detector_mixin import \ diff --git a/mmocr/models/textdet/detectors/single_stage_text_detector.py b/mmocr/models/textdet/detectors/single_stage_text_detector.py index 959f4829..815c4139 100644 --- a/mmocr/models/textdet/detectors/single_stage_text_detector.py +++ b/mmocr/models/textdet/detectors/single_stage_text_detector.py @@ -1,5 +1,4 @@ import torch - from mmdet.models.builder import DETECTORS from mmdet.models.detectors import SingleStageDetector diff --git a/mmocr/models/textdet/detectors/textsnake.py b/mmocr/models/textdet/detectors/textsnake.py index 25f65abf..7aaeaaf5 100644 --- a/mmocr/models/textdet/detectors/textsnake.py +++ b/mmocr/models/textdet/detectors/textsnake.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from . import SingleStageTextDetector, TextDetectorMixin diff --git a/mmocr/models/textdet/losses/db_loss.py b/mmocr/models/textdet/losses/db_loss.py index 2d5fd3fc..3d7bc42e 100644 --- a/mmocr/models/textdet/losses/db_loss.py +++ b/mmocr/models/textdet/losses/db_loss.py @@ -1,8 +1,8 @@ import torch import torch.nn.functional as F +from mmdet.models.builder import LOSSES from torch import nn -from mmdet.models.builder import LOSSES from mmocr.models.common.losses.dice_loss import DiceLoss diff --git a/mmocr/models/textdet/losses/drrg_loss.py b/mmocr/models/textdet/losses/drrg_loss.py index 84c55577..fcaf9a9c 100644 --- a/mmocr/models/textdet/losses/drrg_loss.py +++ b/mmocr/models/textdet/losses/drrg_loss.py @@ -1,9 +1,9 @@ import torch import torch.nn.functional as F -from torch import nn - from mmdet.core import BitmapMasks from mmdet.models.builder import LOSSES +from torch import nn + from mmocr.utils import check_argument diff --git a/mmocr/models/textdet/losses/fce_loss.py b/mmocr/models/textdet/losses/fce_loss.py index 33f38d67..0fec98ee 100644 --- a/mmocr/models/textdet/losses/fce_loss.py +++ b/mmocr/models/textdet/losses/fce_loss.py @@ -1,10 +1,9 @@ import numpy as np import torch import torch.nn.functional as F -from torch import nn - from mmdet.core import multi_apply from mmdet.models.builder import LOSSES +from torch import nn @LOSSES.register_module() diff --git a/mmocr/models/textdet/losses/pan_loss.py b/mmocr/models/textdet/losses/pan_loss.py index c5ccd464..28ca6f2c 100644 --- a/mmocr/models/textdet/losses/pan_loss.py +++ b/mmocr/models/textdet/losses/pan_loss.py @@ -4,10 +4,10 @@ import warnings import numpy as np import torch import torch.nn.functional as F -from torch import nn - from mmdet.core import BitmapMasks from mmdet.models.builder import LOSSES +from torch import nn + from mmocr.utils import check_argument diff --git a/mmocr/models/textdet/losses/pse_loss.py b/mmocr/models/textdet/losses/pse_loss.py index ce80c0dc..739bc59d 100644 --- a/mmocr/models/textdet/losses/pse_loss.py +++ b/mmocr/models/textdet/losses/pse_loss.py @@ -1,5 +1,6 @@ from mmdet.core import BitmapMasks from mmdet.models.builder import LOSSES + from mmocr.utils import check_argument from . import PANLoss diff --git a/mmocr/models/textdet/losses/textsnake_loss.py b/mmocr/models/textdet/losses/textsnake_loss.py index b12de444..fe151b8a 100644 --- a/mmocr/models/textdet/losses/textsnake_loss.py +++ b/mmocr/models/textdet/losses/textsnake_loss.py @@ -1,9 +1,9 @@ import torch import torch.nn.functional as F -from torch import nn - from mmdet.core import BitmapMasks from mmdet.models.builder import LOSSES +from torch import nn + from mmocr.utils import check_argument diff --git a/mmocr/models/textdet/necks/fpem_ffm.py b/mmocr/models/textdet/necks/fpem_ffm.py index 3722649b..3ebb0c4c 100644 --- a/mmocr/models/textdet/necks/fpem_ffm.py +++ b/mmocr/models/textdet/necks/fpem_ffm.py @@ -1,8 +1,7 @@ import torch.nn.functional as F from mmcv.cnn import xavier_init -from torch import nn - from mmdet.models.builder import NECKS +from torch import nn class FPEM(nn.Module): diff --git a/mmocr/models/textdet/necks/fpn_cat.py b/mmocr/models/textdet/necks/fpn_cat.py index 2e4239bc..1e1a28f8 100644 --- a/mmocr/models/textdet/necks/fpn_cat.py +++ b/mmocr/models/textdet/necks/fpn_cat.py @@ -3,7 +3,6 @@ import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import ConvModule from mmcv.runner import auto_fp16 - from mmdet.models.builder import NECKS diff --git a/mmocr/models/textdet/necks/fpn_unet.py b/mmocr/models/textdet/necks/fpn_unet.py index 3987a47e..3a709be9 100644 --- a/mmocr/models/textdet/necks/fpn_unet.py +++ b/mmocr/models/textdet/necks/fpn_unet.py @@ -1,9 +1,8 @@ import torch import torch.nn.functional as F from mmcv.cnn import xavier_init -from torch import nn - from mmdet.models.builder import NECKS +from torch import nn class UpBlock(nn.Module): diff --git a/mmocr/models/textdet/necks/fpnf.py b/mmocr/models/textdet/necks/fpnf.py index bdb69fea..c849f62f 100644 --- a/mmocr/models/textdet/necks/fpnf.py +++ b/mmocr/models/textdet/necks/fpnf.py @@ -2,9 +2,8 @@ import torch import torch.nn.functional as F from mmcv.cnn import ConvModule, xavier_init from mmcv.runner import auto_fp16 -from torch import nn - from mmdet.models.builder import NECKS +from torch import nn @NECKS.register_module() diff --git a/mmocr/models/textrecog/backbones/nrtr_modality_transformer.py b/mmocr/models/textrecog/backbones/nrtr_modality_transformer.py index 4471c733..411ac8ef 100644 --- a/mmocr/models/textrecog/backbones/nrtr_modality_transformer.py +++ b/mmocr/models/textrecog/backbones/nrtr_modality_transformer.py @@ -1,6 +1,5 @@ import torch.nn as nn from mmcv.cnn import kaiming_init, uniform_init - from mmdet.models.builder import BACKBONES diff --git a/mmocr/models/textrecog/backbones/resnet31_ocr.py b/mmocr/models/textrecog/backbones/resnet31_ocr.py index 7fce5ac5..0a581634 100644 --- a/mmocr/models/textrecog/backbones/resnet31_ocr.py +++ b/mmocr/models/textrecog/backbones/resnet31_ocr.py @@ -1,8 +1,8 @@ import torch.nn as nn from mmcv.cnn import kaiming_init, uniform_init +from mmdet.models.builder import BACKBONES import mmocr.utils as utils -from mmdet.models.builder import BACKBONES from mmocr.models.textrecog.layers import BasicBlock diff --git a/mmocr/models/textrecog/backbones/very_deep_vgg.py b/mmocr/models/textrecog/backbones/very_deep_vgg.py index 277f89ca..dbbde38b 100644 --- a/mmocr/models/textrecog/backbones/very_deep_vgg.py +++ b/mmocr/models/textrecog/backbones/very_deep_vgg.py @@ -1,6 +1,5 @@ import torch.nn as nn from mmcv.cnn import uniform_init, xavier_init - from mmdet.models.builder import BACKBONES diff --git a/mmocr/models/textrecog/heads/seg_head.py b/mmocr/models/textrecog/heads/seg_head.py index a0ca59cc..16f98e89 100644 --- a/mmocr/models/textrecog/heads/seg_head.py +++ b/mmocr/models/textrecog/heads/seg_head.py @@ -1,8 +1,7 @@ import torch.nn.functional as F from mmcv.cnn import ConvModule -from torch import nn - from mmdet.models.builder import HEADS +from torch import nn @HEADS.register_module() diff --git a/mmocr/models/textrecog/losses/ce_loss.py b/mmocr/models/textrecog/losses/ce_loss.py index b3dbd03c..0c7dc8fc 100644 --- a/mmocr/models/textrecog/losses/ce_loss.py +++ b/mmocr/models/textrecog/losses/ce_loss.py @@ -1,5 +1,4 @@ import torch.nn as nn - from mmdet.models.builder import LOSSES diff --git a/mmocr/models/textrecog/losses/ctc_loss.py b/mmocr/models/textrecog/losses/ctc_loss.py index cf7ecf40..d2747180 100644 --- a/mmocr/models/textrecog/losses/ctc_loss.py +++ b/mmocr/models/textrecog/losses/ctc_loss.py @@ -2,7 +2,6 @@ import math import torch import torch.nn as nn - from mmdet.models.builder import LOSSES diff --git a/mmocr/models/textrecog/losses/seg_loss.py b/mmocr/models/textrecog/losses/seg_loss.py index 9a2911e8..31c7996f 100644 --- a/mmocr/models/textrecog/losses/seg_loss.py +++ b/mmocr/models/textrecog/losses/seg_loss.py @@ -1,7 +1,6 @@ import torch import torch.nn as nn import torch.nn.functional as F - from mmdet.models.builder import LOSSES diff --git a/mmocr/models/textrecog/necks/fpn_ocr.py b/mmocr/models/textrecog/necks/fpn_ocr.py index 89713f10..5bb71c94 100644 --- a/mmocr/models/textrecog/necks/fpn_ocr.py +++ b/mmocr/models/textrecog/necks/fpn_ocr.py @@ -2,7 +2,6 @@ import torch import torch.nn as nn import torch.nn.functional as F from mmcv.cnn import ConvModule - from mmdet.models.builder import NECKS diff --git a/mmocr/models/textrecog/recognizer/crnn.py b/mmocr/models/textrecog/recognizer/crnn.py index cfc98aae..56f410c1 100644 --- a/mmocr/models/textrecog/recognizer/crnn.py +++ b/mmocr/models/textrecog/recognizer/crnn.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from .encode_decode_recognizer import EncodeDecodeRecognizer diff --git a/mmocr/models/textrecog/recognizer/encode_decode_recognizer.py b/mmocr/models/textrecog/recognizer/encode_decode_recognizer.py index 12566540..c8b82bf9 100644 --- a/mmocr/models/textrecog/recognizer/encode_decode_recognizer.py +++ b/mmocr/models/textrecog/recognizer/encode_decode_recognizer.py @@ -1,6 +1,6 @@ import torch - from mmdet.models.builder import DETECTORS, build_backbone, build_loss + from mmocr.models.builder import (build_convertor, build_decoder, build_encoder, build_preprocessor) from .base import BaseRecognizer diff --git a/mmocr/models/textrecog/recognizer/nrtr.py b/mmocr/models/textrecog/recognizer/nrtr.py index e1b3c5d2..ddc4ea5a 100644 --- a/mmocr/models/textrecog/recognizer/nrtr.py +++ b/mmocr/models/textrecog/recognizer/nrtr.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from .encode_decode_recognizer import EncodeDecodeRecognizer diff --git a/mmocr/models/textrecog/recognizer/robust_scanner.py b/mmocr/models/textrecog/recognizer/robust_scanner.py index 7189396e..924d3a67 100644 --- a/mmocr/models/textrecog/recognizer/robust_scanner.py +++ b/mmocr/models/textrecog/recognizer/robust_scanner.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from .encode_decode_recognizer import EncodeDecodeRecognizer diff --git a/mmocr/models/textrecog/recognizer/sar.py b/mmocr/models/textrecog/recognizer/sar.py index bce67dca..07f31819 100644 --- a/mmocr/models/textrecog/recognizer/sar.py +++ b/mmocr/models/textrecog/recognizer/sar.py @@ -1,4 +1,5 @@ from mmdet.models.builder import DETECTORS + from .encode_decode_recognizer import EncodeDecodeRecognizer diff --git a/mmocr/models/textrecog/recognizer/seg_recognizer.py b/mmocr/models/textrecog/recognizer/seg_recognizer.py index e013e1d7..52aa3023 100644 --- a/mmocr/models/textrecog/recognizer/seg_recognizer.py +++ b/mmocr/models/textrecog/recognizer/seg_recognizer.py @@ -1,5 +1,6 @@ from mmdet.models.builder import (DETECTORS, build_backbone, build_head, build_loss, build_neck) + from mmocr.models.builder import build_convertor, build_preprocessor from .base import BaseRecognizer diff --git a/setup.cfg b/setup.cfg index fb1ae648..21cbc39e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,8 +19,8 @@ SPLIT_PENALTY_AFTER_OPENING_BRACKET=800 line_length = 79 multi_line_output = 0 known_standard_library = setuptools -known_first_party = mmdet,mmocr -known_third_party = PIL,Polygon,cv2,imgaug,lanms,lmdb,matplotlib,mmcv,numpy,pyclipper,pycocotools,pytest,rapidfuzz,scipy,shapely,skimage,titlecase,torch,torchvision +known_first_party = mmocr +known_third_party = PIL,Polygon,cv2,imgaug,lanms,lmdb,matplotlib,mmcv,mmdet,numpy,pyclipper,pycocotools,pytest,rapidfuzz,scipy,shapely,skimage,titlecase,torch,torchvision no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_apis/test_model_inference.py b/tests/test_apis/test_model_inference.py index d964b5ff..63036f8d 100644 --- a/tests/test_apis/test_model_inference.py +++ b/tests/test_apis/test_model_inference.py @@ -2,8 +2,8 @@ import os import pytest from mmcv.image import imread - from mmdet.apis import init_detector + from mmocr.apis.inference import model_inference from mmocr.datasets import build_dataset # noqa: F401 from mmocr.models import build_detector # noqa: F401 diff --git a/tests/test_dataset/test_textdet_targets.py b/tests/test_dataset/test_textdet_targets.py index ad84706e..8434ae70 100644 --- a/tests/test_dataset/test_textdet_targets.py +++ b/tests/test_dataset/test_textdet_targets.py @@ -1,10 +1,10 @@ from unittest import mock import numpy as np +from mmdet.core import PolygonMasks import mmocr.datasets.pipelines.custom_format_bundle as cf_bundle import mmocr.datasets.pipelines.textdet_targets as textdet_targets -from mmdet.core import PolygonMasks @mock.patch('%s.cf_bundle.show_feature' % __name__) diff --git a/tests/test_dataset/test_transforms.py b/tests/test_dataset/test_transforms.py index bf160ea5..26ecef0b 100644 --- a/tests/test_dataset/test_transforms.py +++ b/tests/test_dataset/test_transforms.py @@ -2,10 +2,10 @@ import unittest.mock as mock import numpy as np import torchvision.transforms as TF +from mmdet.core import BitmapMasks, PolygonMasks from PIL import Image import mmocr.datasets.pipelines.transforms as transforms -from mmdet.core import BitmapMasks, PolygonMasks @mock.patch('%s.transforms.np.random.random_sample' % __name__) diff --git a/tests/test_models/test_loss.py b/tests/test_models/test_loss.py index 5176a3e6..da99c00e 100644 --- a/tests/test_models/test_loss.py +++ b/tests/test_models/test_loss.py @@ -1,8 +1,8 @@ import numpy as np import torch +from mmdet.core import BitmapMasks import mmocr.models.textdet.losses as losses -from mmdet.core import BitmapMasks def test_panloss(): diff --git a/tests/test_models/test_recognizer.py b/tests/test_models/test_recognizer.py index 22cd52d2..735e9ad4 100644 --- a/tests/test_models/test_recognizer.py +++ b/tests/test_models/test_recognizer.py @@ -5,8 +5,8 @@ from functools import partial import numpy as np import pytest import torch - from mmdet.core import BitmapMasks + from mmocr.models.textrecog.recognizer import (EncodeDecodeRecognizer, SegRecognizer) diff --git a/tools/benchmark_processing.py b/tools/benchmark_processing.py index 3fe23693..8bd2c779 100755 --- a/tools/benchmark_processing.py +++ b/tools/benchmark_processing.py @@ -16,8 +16,8 @@ import argparse import mmcv from mmcv import Config - from mmdet.datasets import build_dataloader + from mmocr.datasets import build_dataset assert build_dataset is not None diff --git a/tools/deployment/deploy_helper.py b/tools/deployment/deploy_helper.py index 5c647cfe..5dafbc88 100644 --- a/tools/deployment/deploy_helper.py +++ b/tools/deployment/deploy_helper.py @@ -4,8 +4,8 @@ from typing import Any, Iterable import numpy as np import torch - from mmdet.models.builder import DETECTORS + from mmocr.models.textdet.detectors.single_stage_text_detector import \ SingleStageTextDetector from mmocr.models.textdet.detectors.text_detector_mixin import \ diff --git a/tools/deployment/onnx2tensorrt.py b/tools/deployment/onnx2tensorrt.py index a6d3290f..bac2d941 100644 --- a/tools/deployment/onnx2tensorrt.py +++ b/tools/deployment/onnx2tensorrt.py @@ -9,13 +9,14 @@ import numpy as np import torch from mmcv.parallel import collate from mmcv.tensorrt import is_tensorrt_plugin_loaded, onnx2trt, save_trt_engine +from mmdet.datasets import replace_ImageToTensor +from mmdet.datasets.pipelines import Compose from tools.deployment.deploy_helper import (ONNXRuntimeDetector, ONNXRuntimeRecognizer, TensorRTDetector, TensorRTRecognizer) -from mmdet.datasets import replace_ImageToTensor -from mmdet.datasets.pipelines import Compose +from mmocr.datasets.pipelines.crop import crop_img # noqa: F401 def get_GiB(x: int): @@ -56,9 +57,9 @@ def _prepare_input_img(imgs, test_pipeline: Iterable[dict]): """Inference image(s) with the detector. Args: - model (nn.Module): The loaded detector. imgs (str/ndarray or list[str/ndarray] or tuple[str/ndarray]): Either image files or loaded images. + test_pipeline (Iterable[dict]): Test pipline of configuration. Returns: result (dict): Predicted results. """ diff --git a/tools/deployment/pytorch2onnx.py b/tools/deployment/pytorch2onnx.py index e625c370..0b2a7142 100644 --- a/tools/deployment/pytorch2onnx.py +++ b/tools/deployment/pytorch2onnx.py @@ -6,13 +6,13 @@ import numpy as np import torch from mmcv.onnx import register_extra_symbolics from mmcv.parallel import collate +from mmdet.apis import init_detector +from mmdet.datasets import replace_ImageToTensor +from mmdet.datasets.pipelines import Compose from tools.deployment.deploy_helper import (ONNXRuntimeDetector, ONNXRuntimeRecognizer) from torch import nn -from mmdet.apis import init_detector -from mmdet.datasets import replace_ImageToTensor -from mmdet.datasets.pipelines import Compose from mmocr.datasets.pipelines.crop import crop_img # noqa: F401 @@ -158,17 +158,16 @@ def pytorch2onnx(model: nn.Module, Default: `tmp.onnx`. verify (bool): Whether compare the outputs between Pytorch and ONNX. Default: False. + dynamic_export (bool): Whether apply dynamic export. + Default: False. device_id (id): Device id to place model and data. Default: 0 """ device = torch.device(type='cuda', index=device_id) model.to(device).eval() _convert_batchnorm(model) - # model.forward = model.simple_test - end2end_res = {'filename': img_path} - end2end_res['result'] = [] - # mm_inputs = _demo_mm_inputs([1,3,512,512], 20) + # prepare inputs mm_inputs = _prepare_data(cfg=model.cfg, imgs=img_path) imgs = mm_inputs.pop('img') img_metas = mm_inputs.pop('img_metas') diff --git a/tools/det_test_imgs.py b/tools/det_test_imgs.py index 1ba7ff4f..008075d3 100755 --- a/tools/det_test_imgs.py +++ b/tools/det_test_imgs.py @@ -4,8 +4,8 @@ from argparse import ArgumentParser import mmcv from mmcv.utils import ProgressBar - from mmdet.apis import inference_detector, init_detector + from mmocr.models import build_detector # noqa: F401 from mmocr.utils import list_from_file, list_to_file diff --git a/tools/recog_test_imgs.py b/tools/recog_test_imgs.py index 330aab0a..51a85a46 100755 --- a/tools/recog_test_imgs.py +++ b/tools/recog_test_imgs.py @@ -7,8 +7,8 @@ from itertools import compress import mmcv from mmcv.utils import ProgressBar - from mmdet.apis import init_detector + from mmocr.apis import model_inference from mmocr.core.evaluation.ocr_metric import eval_ocr_metric from mmocr.datasets import build_dataset # noqa: F401 diff --git a/tools/test.py b/tools/test.py index f80e0d15..63593168 100755 --- a/tools/test.py +++ b/tools/test.py @@ -10,9 +10,9 @@ from mmcv.cnn import fuse_conv_bn from mmcv.parallel import MMDataParallel, MMDistributedDataParallel from mmcv.runner import (get_dist_info, init_dist, load_checkpoint, wrap_fp16_model) - from mmdet.apis import multi_gpu_test, single_gpu_test from mmdet.datasets import replace_ImageToTensor + from mmocr.datasets import build_dataloader, build_dataset from mmocr.models import build_detector