SxJyJay / MSMDFusion

[CVPR 2023] MSMDFusion: Fusing LiDAR and Camera at Multiple Scales with Multi-Depth Seeds for 3D Object Detection
Apache License 2.0
183 stars 11 forks source link

Some question about the version about mmdet3d and demo #23

Open YuRui-Learning opened 1 year ago

YuRui-Learning commented 1 year ago

Hello, thank you very much for this excellent work. I have greatly benefited from reading your article. However, I have encountered some issues when running the code. Firstly, in the article, it mentioned that the recommended version of MMDetection3D is 0.11.0. Should I follow the installation instructions provided or export the Python path like(export PYTHONPATH=${PYTHONPATH}:/root/MSMDFusion-main)? Secondly, when I ran the demo, I encountered the following problem.When i git clone mmdet3d and pip install -v -e , i get this bug `Created wheel for networkx: filename=networkx-2.2-py2.py3-none-any.whl size=1526911 sha256=d76950b5f10f72129bc4e681e812ee47f321c7fda90c90e65ed5439da3efa28e Stored in directory: /root/.cache/pip/wheels/49/fb/7f/02c31ca537b34e1073844b733832e4c3a94071d8edda2c0faa Successfully built networkx Installing collected packages: networkx, mmdet3d Attempting uninstall: networkx Found existing installation: networkx 2.6.3 Uninstalling networkx-2.6.3: Removing file or directory /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/networkx-2.6.3.dist-info/ Removing file or directory /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/networkx/ Removing file or directory /root/anaconda3/envs/MSMDFusion/share/doc/networkx-2.6.3/ Successfully uninstalled networkx-2.6.3 Attempting uninstall: mmdet3d Found existing installation: mmdet3d 0.11.0 Can't uninstall 'mmdet3d'. No files were found to uninstall. Running setup.py develop for mmdet3d Running command python setup.py develop No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda' Compiling sparse_conv_ext without CUDA Compiling iou3d_cuda without CUDA Compiling voxel_layer without CUDA Compiling roiaware_pool3d_ext without CUDA Compiling ball_query_ext without CUDA Compiling group_points_ext without CUDA Compiling interpolate_ext without CUDA Compiling furthest_point_sample_ext without CUDA Compiling gather_points_ext without CUDA running develop running egg_info writing mmdet3d.egg-info/PKG-INFO writing dependency_links to mmdet3d.egg-info/dependency_links.txt writing requirements to mmdet3d.egg-info/requires.txt writing top-level names to mmdet3d.egg-info/top_level.txt reading manifest file 'mmdet3d.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated. !!

        ********************************************************************************
        Please avoid running ``setup.py`` and ``easy_install``.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://github.com/pypa/setuptools/issues/917 for details.
        ********************************************************************************

!!
  easy_install.initialize_options(self)
/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
warning: no files found matching 'mmdet3d/ops/**/*.cpp'
warning: no files found matching 'mmdet3d/ops/**/*.cu'
warning: no files found matching 'mmdet3d/ops/**/*.h'
warning: no files found matching 'mmdet3d/ops/**/*.cc'
warning: no files found matching 'mmdet3d/VERSION'
adding license file 'LICENSE'
writing manifest file 'mmdet3d.egg-info/SOURCES.txt'
running build_ext
Traceback (most recent call last):
  File "<string>", line 36, in <module>
  File "<pip-setuptools-caller>", line 34, in <module>
  File "/root/MSMDFusion-main/mmdetection3d/setup.py", line 248, in <module>
    zip_safe=False)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/__init__.py", line 107, in setup
    return distutils.core.setup(**attrs)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/dist.py", line 1234, in run_command
    super().run_command(command)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/command/develop.py", line 34, in run
    self.install_for_development()
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/command/develop.py", line 111, in install_for_development
    self.run_command('build_ext')
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/dist.py", line 1234, in run_command
    super().run_command(command)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 84, in run
    _build_ext.run(self)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
    self.build_extensions()
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 434, in build_extensions
    self._check_cuda_version(compiler_name, compiler_version)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 808, in _check_cuda_version
    torch_cuda_version = packaging.version.parse(torch.version.cuda)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/pkg_resources/_vendor/packaging/version.py", line 52, in parse
    return Version(version)
  File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/pkg_resources/_vendor/packaging/version.py", line 196, in __init__
    match = self._regex.search(version)
TypeError: expected string or bytes-like object
error: subprocess-exited-with-error

× python setup.py develop did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /root/anaconda3/envs/MSMDFusion/bin/python -c '
exec(compile('"'"''"'"''"'"'
# This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
#
# - It imports setuptools before invoking setup.py, to enable projects that directly
#   import from `distutils.core` to work with newer packaging standards.
# - It provides a clear error message when setuptools is not installed.
# - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
#   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
#     manifest_maker: standard file '"'"'-c'"'"' not found".
# - It generates a shim setup.py, for handling setup.cfg-only projects.
import os, sys, tokenize

try:
    import setuptools
except ImportError as error:
    print(
        "ERROR: Can not execute `setup.py` since setuptools is not available in "
        "the build environment.",
        file=sys.stderr,
    )
    sys.exit(1)

__file__ = %r
sys.argv[0] = __file__

if os.path.exists(__file__):
    filename = __file__
    with tokenize.open(__file__) as f:
        setup_py_code = f.read()
else:
    filename = "<auto-generated setuptools caller>"
    setup_py_code = "from setuptools import setup; setup()"

exec(compile(setup_py_code, filename, "exec"))
'"'"''"'"''"'"' % ('"'"'/root/MSMDFusion-main/mmdetection3d/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps
cwd: /root/MSMDFusion-main/mmdetection3d/

ERROR: Can't roll back mmdet3d; was not uninstalled error: subprocess-exited-with-error

× python setup.py develop did not run successfully. │ exit code: 1 ╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.` meanwhile i export PAYTHON_PATH , I meet this issue like this ' Traceback (most recent call last): File "demo/pcd_demo.py", line 3, in from mmdet3d.apis import inference_detector, init_detector, show_result_meshlab File "/root/MSMDFusion-main/mmdet3d/apis/init.py", line 1, in from .inference import (convert_SyncBN, inference_detector, init_detector, File "/root/MSMDFusion-main/mmdet3d/apis/inference.py", line 8, in from mmdet3d.core import Box3DMode, show_result File "/root/MSMDFusion-main/mmdet3d/core/init.py", line 1, in from .anchor import # noqa: F401, F403 File "/root/MSMDFusion-main/mmdet3d/core/anchor/init.py", line 1, in from mmdet.core.anchor import build_anchor_generator File "/root/MSMDFusion-main/mmdetection-2.x/mmdet/core/init.py", line 3, in from .bbox import # noqa: F401, F403 File "/root/MSMDFusion-main/mmdetection-2.x/mmdet/core/bbox/init.py", line 8, in from .samplers import (BaseSampler, CombinedSampler, File "/root/MSMDFusion-main/mmdetection-2.x/mmdet/core/bbox/samplers/init.py", line 12, in from .score_hlr_sampler import ScoreHLRSampler File "/root/MSMDFusion-main/mmdetection-2.x/mmdet/core/bbox/samplers/score_hlr_sampler.py", line 3, in from mmcv.ops import nms_match File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/mmcv/ops/init.py", line 2, in from .assign_score_withk import assign_score_withk File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/mmcv/ops/assign_score_withk.py", line 6, in '_ext', ['assign_score_withk_forward', 'assign_score_withk_backward']) File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/mmcv/utils/ext_loader.py", line 13, in load_ext ext = importlib.import_module('mmcv.' + name) File "/root/anaconda3/envs/MSMDFusion/lib/python3.7/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) ImportError: /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN2at4_ops19empty_memory_format4callEN3c108ArrayRefINS2_6SymIntEEENS2_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6DeviceEEENS6_IbEENS6_INS2_12MemoryFormatEEE '

YuRui-Learning commented 1 year ago

meanwhile, i run collect_env.pt, i get this result

` /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/mmcv/init.py:21: UserWarning: On January 1, 2023, MMCV will release v2.0.0, in which it will remove components related to the training process and add a data transformation module. In addition, it will rename the package names mmcv to mmcv-lite and mmcv-full to mmcv. See https://github.com/open-mmlab/mmcv/blob/master/docs/en/compatibility.md for more details. 'On January 1, 2023, MMCV will release v2.0.0, in which it will remove ' /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension: /root/anaconda3/envs/MSMDFusion/lib/python3.7/site-packages/torchvision/image.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE warn(f"Failed to load image Python extension: {e}") fatal: not a git repository (or any of the parent directories): .git sys.platform: linux Python: 3.7.16 (default, Jan 17 2023, 22:20:44) [GCC 11.2.0] CUDA available: True GPU 0,1,2,3,4,5,6,7: NVIDIA GeForce RTX 3090 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.12.0+cu113 PyTorch compiling details: PyTorch built with:

TorchVision: 0.13.1a0 OpenCV: 4.8.1 MMCV: 1.7.1 MMCV Compiler: GCC 9.4 MMCV CUDA Compiler: 11.3 MMDetection: 2.28.2 MMDetection3D: 0.11.0+ `

SxJyJay commented 1 year ago

In fact, I have placed the required mmdet3d in this repo to prevent version incompatible problem. You can directly build the mmdet3d in this repo.