Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the instance segmentation usage of 'large_image_demo.py'. Bug:AssertionError: binary_marks must have the same shape with image #10918

Open
W-hary opened this issue Sep 12, 2023 · 5 comments
Assignees

Comments

@W-hary
Copy link

W-hary commented Sep 12, 2023

Thanks for your error report and we appreciate it a lot.

Checklist

  1. I have searched related issues but cannot get the expected help.
  2. I have read the FAQ documentation but cannot get the expected help.
  3. The bug has not been fixed in the latest version.

Describe the bug
AssertionError: binary_marks must have the same shape with image

Reproduction

python demo/large_image_demo.py demo/large_image.jpg rtmdet-ins_tiny_8xb32-300e_coco.py rtmdet-ins_tiny_8xb32-300e_coco_20221130_151727-ec670f7e.pth --device cpu

A placeholder for the command.
  1. Did you make any modifications on the code or config? Did you understand what you have modified?
    No modifications have been made
  2. What dataset did you use?
    COCO

Environment

  1. Please run python mmdet/utils/collect_env.py to collect necessary environment information and paste it here.

sys.platform: linux
Python: 3.8.10 (default, Jun 4 2021, 15:09:15) [GCC 7.5.0]
CUDA available: True
numpy_random_seed: 2147483648
GPU 0: NVIDIA RTX A5000
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.3, V11.3.109
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 1.11.0+cu113
PyTorch compiling details: PyTorch built with:

  • GCC 7.3
  • C++ Version: 201402
  • Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
  • Intel(R) MKL-DNN v2.5.2 (Git Hash a9302535553c73243c632ad3c4c80beec3d19a1e)
  • OpenMP 201511 (a.k.a. OpenMP 4.5)
  • LAPACK is enabled (usually provided by MKL)
  • NNPACK is enabled
  • CPU capability usage: AVX2
  • CUDA Runtime 11.3
  • NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
  • CuDNN 8.2
  • Magma 2.5.2
  • Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.11.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.12.0+cu113
OpenCV: 4.8.0
MMEngine: 0.8.4
MMDetection: 3.1.0+769c810

  1. You may add addition that may be helpful for locating the problem
    I completely follow the official recommended method to install mmdet_ Dev-3.1.0

Error traceback
I ran the following command on 'demo/large_image' and an error occurred:
’python demo/large_image_demo.py demo/large_image.jpg rtmdet-ins_tiny_8xb32-300e_coco.py rtmdet-ins_tiny_8xb32-300e_coco_20221130_151727-ec670f7e.pth --device cpu‘

Loads checkpoint by local backend from path: rtmdet-ins_tiny_8xb32-300e_coco_20221130_151727-ec670f7e.pth
/root/miniconda3/lib/python3.8/site-packages/mmengine/visualization/visualizer.py:196: UserWarning: Failed to add <class 'mmengine.visualization.vis_backend.LocalVisBackend'>, please provide the save_dir argument.
warnings.warn(f'Failed to add {vis_backend.class}, '
Performing inference on 1 images.... This may take a while.
[ ] 0/1, elapsed: 0s, ETA:/root/miniconda3/lib/python3.8/site-packages/torch/functional.py:568: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2228.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
/root/autodl-tmp/mmdetection/mmdet/visualization/palette.py:90: UserWarning: floordiv is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
scales = 0.5 + (areas - min_area) // (max_area - min_area)
Traceback (most recent call last):
File "demo/large_image_demo.py", line 282, in
main()
File "demo/large_image_demo.py", line 264, in main
visualizer.add_datasample(
File "/root/miniconda3/lib/python3.8/site-packages/mmengine/dist/utils.py", line 401, in wrapper
return func(*args, **kwargs)
File "/root/autodl-tmp/mmdetection/mmdet/visualization/local_visualizer.py", line 468, in add_datasample
pred_img_data = self._draw_instances(image, pred_instances,
File "/root/autodl-tmp/mmdetection/mmdet/visualization/local_visualizer.py", line 194, in _draw_instances
self.draw_binary_masks(masks, colors=colors, alphas=self.alpha)
File "/root/miniconda3/lib/python3.8/site-packages/mmengine/dist/utils.py", line 401, in wrapper
return func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/mmengine/visualization/visualizer.py", line 881, in draw_binary_masks
assert img.shape[:2] == binary_masks.shape[
AssertionError: binary_marks must have the same shape with image

Whether ‘demo/large_image_demo.py’ can be used for instance splitting tasks?
how can i solve?
56012e3de860d122b8fb79818f3389e
@rbli-john
Copy link

rbli-john commented Sep 13, 2023

I have the same problem. Could anyone fix the issue? thanks.

@rbli-john
Copy link

@hhaAndroid Hi, may I ask, do you have any plan to solve this issue? thank.

@confusedgreenhand
Copy link

I met the same error

@JCRONG96
Copy link

JCRONG96 commented Mar 3, 2024

Yes. The same issue appears using rtmdet, its a bug. Any one fixed it?

@Fe-iWu
Copy link

Fe-iWu commented Jan 1, 2025

I met this problem and solved it by: move the Resize before LoadAnnotations
test_pipeline = [
dict(type=LoadImageFromFile, backend_args=backend_args),
dict(type=Resize, scale=(1024,1024), keep_ratio=True),
dict(type=LoadAnnotations, with_bbox=True, with_mask=True),

# dict(type=RandomCrop, crop_size=(1024,1024)),
# dict(type=PackDetInputs)
dict(
    type=PackDetInputs,
    meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
               'scale_factor'))

]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants