[Fix] Fix Visualizer that built vis_backends will not be used when save_dir is None (#1275)
parent
2df93eb51f
commit
4fdab5e9cb
|
@ -6,8 +6,6 @@ from typing import TYPE_CHECKING, Dict, List, Optional, Sequence, Tuple, Union
|
|||
if TYPE_CHECKING:
|
||||
from matplotlib.font_manager import FontProperties
|
||||
|
||||
import logging
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
import torch
|
||||
|
@ -15,7 +13,6 @@ import torch.nn.functional as F
|
|||
|
||||
from mmengine.config import Config
|
||||
from mmengine.dist import master_only
|
||||
from mmengine.logging import print_log
|
||||
from mmengine.registry import VISBACKENDS, VISUALIZERS
|
||||
from mmengine.structures import BaseDataElement
|
||||
from mmengine.utils import ManagerMixin
|
||||
|
@ -165,17 +162,9 @@ class Visualizer(ManagerMixin):
|
|||
self._dataset_meta: Optional[dict] = None
|
||||
self._vis_backends: Union[Dict, Dict[str, 'BaseVisBackend']] = dict()
|
||||
|
||||
if save_dir is None:
|
||||
print_log(
|
||||
'`Visualizer` backend is not initialized '
|
||||
'because save_dir is None.',
|
||||
logger='current',
|
||||
level=logging.WARNING)
|
||||
elif vis_backends is not None:
|
||||
if vis_backends is not None:
|
||||
assert len(vis_backends) > 0, 'empty list'
|
||||
names = [
|
||||
vis_backend.get('name', None) for vis_backend in vis_backends
|
||||
]
|
||||
names = [vis_backend.get('name') for vis_backend in vis_backends]
|
||||
if None in names:
|
||||
if len(set(names)) > 1:
|
||||
raise RuntimeError(
|
||||
|
@ -194,8 +183,8 @@ class Visualizer(ManagerMixin):
|
|||
if None not in names and len(set(names)) != len(names):
|
||||
raise RuntimeError('The name fields cannot be the same')
|
||||
|
||||
save_dir = osp.join(save_dir, 'vis_data')
|
||||
|
||||
if save_dir is not None:
|
||||
save_dir = osp.join(save_dir, 'vis_data')
|
||||
for vis_backend in vis_backends:
|
||||
name = vis_backend.pop('name', vis_backend['type'])
|
||||
vis_backend.setdefault('save_dir', save_dir)
|
||||
|
|
|
@ -11,7 +11,6 @@ import torch
|
|||
import torch.nn as nn
|
||||
|
||||
from mmengine import VISBACKENDS, Config
|
||||
from mmengine.logging import MMLogger
|
||||
from mmengine.visualization import Visualizer
|
||||
|
||||
|
||||
|
@ -69,14 +68,9 @@ class TestVisualizer(TestCase):
|
|||
visualizer = Visualizer(image=self.image)
|
||||
visualizer.get_image()
|
||||
|
||||
# test save_dir
|
||||
# Warning should be raised since no backend is initialized.
|
||||
with self.assertLogs(MMLogger.get_current_instance(), level='WARNING'):
|
||||
Visualizer()
|
||||
|
||||
# build visualizer without `save_dir`
|
||||
visualizer = Visualizer(
|
||||
vis_backends=copy.deepcopy(self.vis_backend_cfg))
|
||||
assert visualizer.get_backend('mock1') is None
|
||||
|
||||
visualizer = Visualizer(
|
||||
vis_backends=copy.deepcopy(self.vis_backend_cfg),
|
||||
|
|
Loading…
Reference in New Issue