Use mmcv tensor2imgs (#4010)

pull/4024/head
David de la Iglesia Castro 5 years ago committed by GitHub
parent d303892394
commit d1cedb72d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      mmdet/apis/test.py
  2. 7
      mmdet/core/utils/__init__.py
  3. 28
      mmdet/core/utils/misc.py
  4. 3
      mmdet/models/detectors/rpn.py

@ -7,9 +7,10 @@ import time
import mmcv import mmcv
import torch import torch
import torch.distributed as dist import torch.distributed as dist
from mmcv.image import tensor2imgs
from mmcv.runner import get_dist_info from mmcv.runner import get_dist_info
from mmdet.core import encode_mask_results, tensor2imgs from mmdet.core import encode_mask_results
def single_gpu_test(model, def single_gpu_test(model,

@ -1,7 +1,4 @@
from .dist_utils import DistOptimizerHook, allreduce_grads from .dist_utils import DistOptimizerHook, allreduce_grads
from .misc import multi_apply, tensor2imgs, unmap from .misc import multi_apply, unmap
__all__ = [ __all__ = ['allreduce_grads', 'DistOptimizerHook', 'multi_apply', 'unmap']
'allreduce_grads', 'DistOptimizerHook', 'tensor2imgs', 'multi_apply',
'unmap'
]

@ -1,37 +1,9 @@
from functools import partial from functools import partial
import mmcv
import numpy as np
import torch import torch
from six.moves import map, zip from six.moves import map, zip
def tensor2imgs(tensor, mean=(0, 0, 0), std=(1, 1, 1), to_rgb=True):
"""Convert tensor to images.
Args:
tensor (torch.Tensor): Tensor that contains multiple images
mean (tuple[float], optional): Mean of images. Defaults to (0, 0, 0).
std (tuple[float], optional): Standard deviation of images.
Defaults to (1, 1, 1).
to_rgb (bool, optional): Whether convert the images to RGB format.
Defaults to True.
Returns:
list[np.ndarray]: A list that contains multiple images.
"""
num_imgs = tensor.size(0)
mean = np.array(mean, dtype=np.float32)
std = np.array(std, dtype=np.float32)
imgs = []
for img_id in range(num_imgs):
img = tensor[img_id, ...].cpu().numpy().transpose(1, 2, 0)
img = mmcv.imdenormalize(
img, mean, std, to_bgr=to_rgb).astype(np.uint8)
imgs.append(np.ascontiguousarray(img))
return imgs
def multi_apply(func, *args, **kwargs): def multi_apply(func, *args, **kwargs):
"""Apply function to a list of arguments. """Apply function to a list of arguments.

@ -1,6 +1,7 @@
import mmcv import mmcv
from mmcv.image import tensor2imgs
from mmdet.core import bbox_mapping, tensor2imgs from mmdet.core import bbox_mapping
from ..builder import DETECTORS, build_backbone, build_head, build_neck from ..builder import DETECTORS, build_backbone, build_head, build_neck
from .base import BaseDetector from .base import BaseDetector

Loading…
Cancel
Save